CSharp基础-LINQ标准查询运算符
标准查询运算符是组成 LINQ 模式的方法。 这些方法中的大多数都作用于序列;其中序列指其类型实现 IEnumerable<T>
接口或 IQueryable<T>
接口的对象。 标准查询运算符提供包括筛选、投影、聚合、排序等在内的查询功能。
查询表达式语法
参考:
按执行方式的分类
参考:
对数据排序
方法名 | 描述 | C# 查询表达式语法 |
---|---|---|
OrderBy | 按升序对值排序。 | orderby |
OrderByDescending | 按降序对值排序。 | orderby … descending |
ThenBy | 按升序执行次要排序。 | orderby …, … |
ThenByDescending | 按降序执行次要排序。 | orderby …, … descending |
Reverse | 反转集合中元素的顺序。 | 不适用。 |
参考:
集运算
参考:
筛选数据
方法名 | 描述 | C# 查询表达式语法 |
---|---|---|
OfType | 根据其转换为特定类型的能力选择值。 | 不适用。 |
Where | 选择基于谓词函数的值。 | where |
参考:
限定符运算
参考:
投影运算
方法名 | 描述 | C# 查询表达式语法 |
---|---|---|
选择 | 投影基于转换函数的值。 | select |
SelectMany | 投影基于转换函数的值序列,然后将它们展平为一个序列。 | 使用多个 from 子句 |
参考:
数据分区
参考:
联接运算
方法名 | 描述 | C# 查询表达式语法 |
---|---|---|
联接 | 根据键选择器函数联接两个序列并提取值对。 | join … in … on … equals … |
GroupJoin | 根据键选择器函数联接两个序列,并对每个元素的结果匹配项进行分组。 | join … in … on … equals … into … |
参考:
对数据分组
方法名 | 描述 | C# 查询表达式语法 |
---|---|---|
GroupBy | 对共享通用属性的元素进行分组。 每组由一个 IGrouping<TKey,TElement> 对象表示。 | group … by 或 group … by … into … |
ToLookup | 将元素插入基于键选择器函数的Lookup<TKey,TElement>(一种一对多字典)。 | 不适用。 |
参考:
生成运算
参考:
相等运算
参考:
元素运算
参考:
转换数据类型
方法名 | 描述 | C# 查询表达式语法 |
---|---|---|
AsEnumerable | 返回类型化为 IEnumerable |
不适用。 |
AsQueryable | 将(泛型)IEnumerable 转换为(泛型)IQueryable。 | 不适用。 |
Cast | 将集合中的元素转换为指定类型。 | 使用显式类型化的范围变量。 例如:from string str in words |
OfType | 根据其转换为指定类型的能力筛选值。 | 不适用。 |
ToArray | 将集合转换为数组。 此方法强制执行查询。 | 不适用。 |
ToDictionary | 根据键选择器函数将元素放入 Dictionary<TKey,TValue>。 此方法强制执行查询。 | 不适用。 |
ToList | 将集合转换为 List |
不适用。 |
ToLookup | 根据键选择器函数将元素放入 Lookup<TKey,TElement>(一对多字典)。 此方法强制执行查询。 | 不适用。 |
参考:
串联运算
参考:
聚合运算
方法名 | 描述 | C# 查询表达式语法 | 详细信息 |
---|---|---|---|
聚合 | 对集合的值执行自定义聚合运算。 | 不适用。 | Enumerable.AggregateQueryable.Aggregate |
平均值 | 计算值集合的平均值。 | 不适用。 | Enumerable.AverageQueryable.Average |
计数 | 对集合中元素计数,可选择仅对满足谓词函数的元素计数。 | 不适用。 | Enumerable.CountQueryable.Count |
LongCount | 对大型集合中元素计数,可选择仅对满足谓词函数的元素计数。 | 不适用。 | Enumerable.LongCountQueryable.LongCount |
最大值 | 确定集合中的最大值。 | 不适用。 | Enumerable.MaxQueryable.Max |
最小值 | 确定集合中的最小值。 | 不适用。 | Enumerable.MinQueryable.Min |
Sum | 对集合中的值求和。 | 不适用。 | Enumerable.SumQueryable.Sum |
参考:
参考:
https://docs.microsoft.com/zh-cn/dotnet/api/system.linq.enumerable.oftype?view=netframework-4.7.2