Ling && Lambda

时间:2023-03-09 06:21:16
Ling && Lambda
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Test_Lambda_Linq
{
class Program
{
static List<Person> PersonList = new List<Person>()
{
new Person(){ Id=, Age=, Name="James", Gender="Male"},
new Person(){ Id=, Age=, Name="Harden", Gender="Male" },
new Person(){ Id=, Age=, Name="George", Gender="Female"},
new Person(){ Id=, Age=, Name="Ball", Gender="Female"},
new Person(){ Id=, Age=, Name="Kobe", Gender="Male"},
new Person(){ Id=, Age=, Name="Fames", Gender="Male"},
new Person(){ Id=, Age=, Name="Garden", Gender="Male" },
new Person(){ Id=, Age=, Name="Deorge", Gender="Female"},
new Person(){ Id=, Age=, Name="Hall", Gender="Female"},
new Person(){ Id=, Age=, Name="Dobe", Gender="Male"},
new Person(){ Id=, Age=, Name="Lames", Gender="Male"},
new Person(){ Id=, Age=, Name="Parden", Gender="Male" },
new Person(){ Id=, Age=, Name="Keorge", Gender="Female"},
new Person(){ Id=, Age=, Name="Yall", Gender="Female"},
new Person(){ Id=, Age=, Name="Robe", Gender="Male"}
};
static List<Children> ChildList = new List<Children>()
{
new Children(){ Id=, Name="Tomas", Age=, Class=, Gender="Female"},
new Children(){ Id=, Name="James", Age=, Class=, Gender="Male"},
new Children(){ Id=, Name="Jungle", Age=, Class=, Gender="Male"}
};
static void Main(string[] args)
{
//PersonList.Reverse();//全盘逆序
//PersonList.Reverse(0,4);//指定范围逆序
#region Lambda
#region Sort排序
//ServiceInvoke.Invoke(() =>
//{
// foreach (var p in PersonList)
// {
// Console.WriteLine(p.Name);
// }
//}); //PersonList.Sort((p1, p2) => { return p1.Age - p2.Age; });
//PersonList.Sort((p1, p2) => p1.Age - p2.Age );//排序 //ServiceInvoke.Invoke(() =>
//{
// foreach (var p in PersonList)
// {
// Console.WriteLine(p.Name);
// }
//});
#endregion #region Where筛选高手
//ServiceInvoke.Invoke(() =>
//{
// List<Person> pTemp = PersonList.Where(p => p.Age > 20 && p.Gender == "Male").ToList();
// foreach (var p in pTemp)
// {
// Console.WriteLine(p.Name + " is " + p.Age + " years old ");
// };
// PersonList.ForEach(p => Console.WriteLine(p.Name));
//});
#endregion #region Select投影大牛---查询投影
//ServiceInvoke.Invoke(() =>
//{
// List<Person> pTemp = PersonList.Where(p => p.Gender == "Male").Select(p => (Person)new LitePerson() { Name = p.Name , Age=p.Age}).ToList();
// foreach (var p in pTemp)
// {
// Console.WriteLine(p.Name + " is " + p.Age + " years old ");
// };
// PersonList.ForEach(p => Console.WriteLine(p.Name));
//});
#endregion #region OrderBy排序 第二次用ThenBy排序
//ServiceInvoke.Invoke(() =>
//{
// Console.WriteLine("Initial Order:"); PersonList.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old "));//原来
// List<Person> pTempDefault = PersonList.OrderBy(p => p.Age).ToList(); Console.WriteLine("Default Order:");//默认由小到大---升序
// pTempDefault.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old "));//排序后 // //单条件降序
// List<Person> pTempDescending = PersonList.OrderByDescending(p => p.Age).ToList(); Console.WriteLine("Descending Order:");//降序
// pTempDescending.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old ")); // //多条件综合排序
// List<Person> pTempOrderBy_ThenByDescending = PersonList.OrderBy(p => p.Age).ThenByDescending(p => p.Id).ToList(); Console.WriteLine("OrderBy_ThenByDescending Order:");
// pTempOrderBy_ThenByDescending.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
//});
#endregion #region Join 多个数据集(>=2)
//ServiceInvoke.Invoke(() =>
//{
// var joinedList = PersonList.Join(ChildList, p => p.Id, c => c.Id, (p, c) =>
// new { //匿名对象
// ParentID = p.Id,
// ChildID = c.Id,
// ParentName = p.Name,
// ChildName = c.Name
// }).ToList();
// joinedList.ForEach(j => Console.WriteLine(" ParentID: " + j.ParentID + " ChildID: " + j.ChildID + " ParentName: " + j.ParentName + " ChildName: " + j.ChildName));
//});
#endregion #region GroupBy
//ServiceInvoke.Invoke(() =>
//{
// IEnumerable<IGrouping<string, Person>> groups = PersonList.GroupBy(p => p.Gender);
// IList<IGrouping<string, Person>> groupList = groups.ToList();
// foreach (var g in groupList)
// {
// //Key是分组依据的类型---Gender
// Console.WriteLine("Group:{0}", g.Key=="Male" ? "Male" : "Female");
// foreach (Person p in g)
// {
// Console.WriteLine(p.Name + " is " + p.Gender);
// }
// }
//});
#endregion #region Skip与Take
//实现分页
//ServiceInvoke.Invoke(()=>
//{
// Console.WriteLine("First Page:");
// var firstPageData = GetPagedListByIndex(1,5);
// firstPageData.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
// Console.WriteLine("Second Page:");
// var secondPageData = GetPagedListByIndex(2, 5);
// secondPageData.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
// Console.WriteLine("Third Page:");
// var thirdPageData = GetPagedListByIndex(1, 5);
// thirdPageData.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
//});
#endregion
#endregion #region Linq #region 基本查询
//ServiceInvoke.Invoke(()=>
//{
// var maleList = from p in PersonList
// where p.Gender == "Male"
// select p;
// maleList.ToList().ForEach(p => Console.WriteLine(p.Name + " is " + p.Gender));
//});
#endregion #region 排序条件查询
//ServiceInvoke.Invoke(() =>
//{
// var orderList = from p in PersonList
// orderby p.Age descending//先按年龄排序
// orderby p.Name ascending//在上面的基础上按姓名排序
// select p;
// orderList.ToList().ForEach(p => Console.WriteLine(p.Name + " is " + p.Age));
//});
#endregion #region 连接查询
//ServiceInvoke.Invoke(() =>
//{
// var joinedList = from p in PersonList
// join c in ChildList
// on p.Id equals c.Id
// select new
// {
// Person = p,
// Child = c
// };
// joinedList.ToList().ForEach(p => Console.WriteLine(" Person.Name is " + p.Person.Name + " Child.Name is " + p.Child.Name + " And Id is: "+ p.Child.Id));
//});
#endregion #region 分组查询
ServiceInvoke.Invoke(() =>
{
var groupList = from p in PersonList
group p by p.Gender;
foreach (var g in groupList)
{
Console.WriteLine($"Group:{g.Key}");
foreach (var item in g)
{
Console.WriteLine(item.Name + " is "+ item.Gender);
}
}
});
#endregion #endregion
} static List<Person> GetPagedListByIndex(int pageIndex, int pageSize)
{
List<Person> dataList = PersonList;
return dataList.Skip((pageIndex - ) * pageSize).Take(pageSize).ToList();
}
}
}