LINQ中的标准查询运算符实际上是 IEnumerable<T> and IQueryable<T>类型的扩展方法。它们在System.Linq.Enumerable和System.Linq.Queryable类中定义。LINQ中提供了50多个标准查询运算符,它们提供了不同的功能,例如过滤,排序,分组,聚合,串联等。


查询语法中的标准查询运算符在编译时转换为扩展方法。所以两者都是一样的。
可以根据标准查询运算符提供的功能对其进行分类。下表列出了标准查询运算符的所有分类:
| 类别 | 标准查询运算符 |
|---|---|
| 过滤 | Where, OfType |
| 排序 | OrderBy, OrderByDescending, ThenBy, ThenByDescending, Reverse |
| 分组 | GroupBy, ToLookup |
| 联合 | GroupJoin, Join |
| 投射 | Select, SelectMany |
| 聚合 | Aggregate, Average, Count, LongCount, Max, Min, Sum |
| 修饰 | All, Any, Contains |
| 元素 | ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last, LastOrDefault, Single, SingleOrDefault |
| 集合 | Distinct, Except, Intersect, Union |
| 分区 | Skip, SkipWhile, Take, TakeWhile |
| 串联 | Concat |
| 相等 | SequenceEqual |
| 范围状态 | DefaultEmpty, Empty, Range, Repeat |
| 转换 | AsEnumerable, AsQueryable, Cast, ToArray, ToDictionary, ToList |
在下一部分中了解每个标准查询运算符。