查询表达式理解

            List p = new List();
            p.Add(new Product() { Id = 11, Name = "asd" });
            p.Add(new Product() { Id = 13, Name = "asddd" });
            p.Add(new Product() { Id = 14, Name = "asdsss" });
            p.Add(new Product() { Id = 15, Name = "xxx" });
            p.Add(new Product() { Id = 16, Name = "cccc" });
            p.Add(new Product() { Id = 17, Name = "a ccsd" });
            IEnumerable list2 = from x in p where x.id>14 select x;
            List list3= list2.ToList();//筛选结果查询表达式
           
            List list4=p.FindAll(x=>x.id>14);//平时直接使用的。



如上筛选;

项目中以前一直使用的是C#,List封装的自带方法List.FindAll()。或者直接用循环来判断筛选。

今天翻书看到这种查询表达式。之前没有接触过。就记录下。

主要理解不难。

格式

from x in 数据源 where (条件) select x

按书上说说明是:

from 声明了一个范围变量x,in后面为数据源,where 后面是帅选的依据,select 是要取的值。

一开始from 声明了一个范围变量x,这句话一直不理解。

直到和拉姆达表达式对比了下。我把他理解为匿名那个X了。在这个列子里应该是Product这个类。

select 取值 在这里X 是返回所有的Product ,换成x.id,那返回的就是int的数组了。


其他还有orderby groupby 等等语句。这些和sql 语句都是差不多的。大同小异。

这个查询表达式还能和方法调用可以混用。

就相当于后面还能使用集合自带的那些方法。




你可能感兴趣的:(C#)