Linq有表达式语法和调用方法的语法。两者是可以结合使用,通常情况下也都是结合使用。表达式语法看上去比较清晰而调用方法的语法实现的功能更多,在此文章中介绍的是表达式语法。方法语法可以看System.Linq等命名空间下的扩展方法。Linq只能用于实现了IEnumerable或IEnumerable<T>接口的类,也就是可以用foreach的类都可以用linq。
注意在3.5和4.0版本上linq的关键字有些区别,下文是以4.0为准的。
1.投影操作符
select:对集合和序列中的值进行投影。from c in contact select c;
2.限制操作符
where:和sql语句中where一样用来过滤数据。from c in contact where c.Lastname="Josn" select c;
3.排序操作符
OrderBy:将返回值按照升序的顺序排序。from c in contact orderby c.Lastname select c;
OrderBy Descending:将返回值按照降序的顺序排序。from c in contact orderby c.Lastname descending select c;
3.连接操作符
join:可以将多个数据源连接。from c in contact join e in employee on c.ID equals e.ContactID select c;
4.分组操作符
groupby:根据一个特定值将数据源中的值进行分组。类似于sql语句中的group by。from c in contact groupby (c=>c.Nationality) select c;