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();
}
}
}
Ling && Lambda的更多相关文章
- Linq表达式和Lambda表达式用法对比
什么是Linq表达式?什么是Lambda表达式?前一段时间用到这个只是,在网上也没找到比较简单明了的方法,今天就整理了一下相关知识,有空了再仔细研究研究 public Program() { List ...
- 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底
本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...
- Entity Framework学习笔记(六)----使用Lambda查询Entity Framework(1)
请注明转载地址:http://www.cnblogs.com/arhat 在前几章中,老魏一直使用Linq来查询Entity Framework.但是老魏感觉,如果使用Linq的话,那么Linq的返回 ...
- C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询
1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...
- .net 系列:Expression表达式树、lambda、匿名委托 的使用
首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...
- .net 系列:Expression表达式树、lambda、匿名委托 的使用【转】
https://www.cnblogs.com/nicholashjh/p/7928205.html 首先定义一个泛型委托类型,如下: public delegate T Function<T& ...
- 你知道C#中的Lambda表达式的演化过程吗?
那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...
- Linq表达式、Lambda表达式你更喜欢哪个?
什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...
- 背后的故事之 - 快乐的Lambda表达式(一)
快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...
随机推荐
- VS的无用文件
目录:C:\ProgramData\Microsoft Visual Studio\10.0\TraceDebugging 每次调试程序都会产生30MB左右大小的Debug文件.如何禁止? Tools ...
- phpstorm(或webstorm) 打开后 一直停留在scanning files to index....,或跳出内存不够的提示框
记得3月份做项目时就遇到过这个问题,当时解决的 ,但是忘记怎么解决的啦,所以 ,写博文是多么的重要啊. 说明: 在npm install 后,会出现Scanning files to index .. ...
- 图像变换之Census变换
图像的Census变换 Census变换属于非参数图像变换的一种,它能够较好地检测出图像中的局部结构特征,如边缘.角点特征等.传统Census变换的基本思想是:在图像区域定义一个矩形窗口,用这个矩形窗 ...
- MYSQL DISTINCT Optimization
在很多情况下,Distinct和order by的组合需要建立一个内存临时表. 因为distinct关键字可能利用group by,所以了解下mysql如何处理group by有帮助. distin ...
- MySql Outer Join 简单化
查询from语句中的Outer Join可以在多种情况下被简化: 在解析阶段,右外连接操作可以被转变为等下ode值包含left join的操作,在一般情况下,转变: (T1, ...) RIGHT J ...
- log4j:ERROR Category option " 1 " not a decimal integer.错误解决
log4j.properties 的配置文件中: log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }: ...
- mysql-innoDB-事务
事务的隔离级别: READ UNCOMMITTED(未提交读) 在这个级别,事务中的修改,即使没有提交,对其他事务也都是可见的,事务可以读取未提交的数据. READ COMMITTED(提交读) 一个 ...
- Python---socket库
为方便以后查询和学习,特从常用库函数和示例来总结socket库 1. 术语 family:AF_INET socktype:SOCK_STREAM或SOCK_DGRAM protocol:IPPROT ...
- 在eclispe的类中快速打出main方法
在java类中快速打出main方法有两种途径: 1. 在新建类时,在New Java Class窗口中,将public static void main ( String[ ] args ) 前面打上 ...
- MySQL查询结果复制到新表(更新、插入)
MySQL中可以将查询结果复制到另外的一张表中,复制的话通常有两种情况,一种是更新已有的数据,另一种是插入一条新记录.下面通过例子来说明.首先构建两个测试表. 表t1: 表t2: 1.如果t2表中存在 ...