linq基本语法:
以from item in items 开始,items为待处理的集合,item为每一项的变量名;最后加上select,表示结果的数据;
1、Orderby 排序
查询狗的年龄信息,按照降序排序
Var items =from d in dogs
Orderby d.Age descending (不写descending默认按照升序排序)
Select d;
2、查找匿名类型
Var r=from d in dogs
Select new{d.Id, d.Name, Desc="一条狗"}; //查找一个匿名类型的数据,匿名类型属性的名字叫id,叫name。。。
3、join
join 子句接受两个源序列作为输入。 每个序列中的元素都必须是可以与另一个序列中的相应属性进行比较的属性,或者包含一个这样的属性。 join子句使用特殊的 equals 关键字比较指定的键是否相等。 join 子句执行的所有联接都是同等联接。
Var r=from d in dogs
Join m in masters on d.MasterId equals m1.Id //在masters表中查找m,条件是d.Masterld equalsm1.Id
Select new {DogName=d.Name,MasterName=m.Name};
注意:join中相等不要用==,要用equals。
4、group by 分组
Var items=from d in dogs
Group d by d.Age into g
Select new { g.key,MaxId=g.Max(d=>d.Id)};
5、取出查询数据中的最大值
Int m = (from n in nums
Where n % 2 ==0
Select n).Max();
6、只有 Where,Select,OrderBy,GroupBy,Join等这些能用 linq写法,如果要用下面的“Max,Min,Count,Average,Sum,Any,First,FirstOrDefault,Single,SingleOrDefault,Distinct,Skip,Take等" 则还要用lambda的写法
Linq表达式详解(LINQ(隐式表达式、lambda 表达式),Linq分组查询),极力推荐阅读,写的非常棒!