形成查询模式的一组扩展方法称为LINQ标准查询运算符.作为LINQ查询表达式的构建块,这些运算符提供了一系列查询功能,如过滤,排序,投影,聚合等.
LINQ标准查询运算符可以分类为以下几种它们的功能基础.
过滤运算符
加入运算符
投影操作
排序运算符
分组运算符
转换
连接
聚合
量化操作
分区操作
生成操作
设置操作
Equality
元素操作符
过滤是一种限制结果集的操作,使得它只选择满足特定条件的元素.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
where | 根据谓词函数过滤值 | where | where |
OfType | 根据其作为指定类型的能力过滤值 | 不适用 | 不适用 |
加入是指以直接方式难以跟踪关系的数据源的目标操作.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
加入 | 运算符根据匹配键加入两个序列 | join ... in ... on ... equals ... | 从x In ...,y In ...其中xa = ya |
GroupJoin | 加入两个序列并将匹配元素分组 | join ... in ... on ... equals ... into ... | Group Join ... In ... On ... |
投影是将对象转换为对象的操作一个只包含特定属性的全新表单.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
Select | 运算符根据转换函数投影值 | select | Select |
SelectMany | 运营商项目基于变换函数的值序列以及将它们展平为单个序列 | 使用多个from子句 | 使用多个From子句 |
排序操作允许对序列的元素进行排序单个或多个属性的基础.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
OrderBy | 运算符按升序排序值 | orderby | 按顺序排序 |
OrderByDescending | 运算符按降序排序值 | orderby ... descending | Order By ... Descending |
ThenBy | 按升序执行二级排序 | orderby ...,... | 订购依据...,... |
ThenByDescending | 执行按降序进行二级排序 | orderby ...,...降序 | 按顺序排序......,......降序 |
Reverse | 执行orde的撤销集合中元素的r | 不适用 | 不适用 |
运算符根据公共共享属性将数据放入某些组中.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
GroupBy | 组织一系列项目,并将它们作为IGrouping< key,element> | group ...的类型的IEnumerable集合返回 - group ... by ... into ... | Group ... By ... Into ... |
ToLookup | 执行分组操作,其中返回一系列密钥对 | 不适用 | 不适用 |
运算符更改输入对象的类型用于各种应用程序.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
AsEnumerable | 返回输入为IEnumerable的输入< T> | 不适用 | 不适用 |
AsQueryable | A(通用)IEnumerable转换为a(通用)IQueryable | 不适用 | 不适用 |
Cast | 执行将集合元素转换为指定类型 | 使用显式类型的范围变量.例如:来自字符串str in words | From ... As ... |
OfType | 基于它们的过滤值,具体取决于它们被投射到特定类型的能力 | 不适用 | 不适用 |
ToArray | 强制查询执行并转换a集合到数组 | 不适用 | 不适用 |
ToDictionary | 基于键选择器功能将元素设置为字典< TKey,TValue>并强制执行LINQ查询 | 不适用 | 不适用 |
ToList | 通过将集合转换为列表来强制执行查询< T> | 不适用 | 不适用 |
ToLookup | 强制执行查询并将元素放入查找< TKey,TElement>基于键选择器功能 | 不适用 | 不适用 |
执行两个序列的连接,并且在操作方面与Union运算符非常相似,除了它不会删除重复项.
显示示例
VB查询表达式语法
运算符 | 描述 | C#查询表达式语法 | |
---|---|---|---|
Concat | 连接两个序列形成单一序列. | 不适用 | 不适用 |
执行任何类型的所需聚合并允许在LINQ中创建自定义聚合.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
Aggregate | 对集合的值进行操作以执行自定义聚合操作 | 不适用 | 不适用 |
Average | 计算值集合的平均值 | 不适用 | 汇总...在......进入平均值() |
Count | 计算满足集合中谓词函数的元素 | 不适用 | Aggregate ... In ...进入Count() |
LonCount | 计算满足要求的元素庞大集合中的谓词函数 | 不适用 | 聚合... In ...进入LongCount() |
Max | 找出集合中的最大值 | 不适用 | 汇总...在......进入Max() |
Min | 找出集合中存在的最小值 | 不适用 | 汇总...在......进入最小值() |
Sum | 找出集合中值的总和 | 不适用 | 汇总......在...中进入Sum() |
当序列中的某些或所有元素满足特定条件时,这些运算符返回一个布尔值,即True或False.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
All | 如果序列的所有元素都满足谓词条件,则返回值"True" | 不适用 | Aggregate ... In ...全部进入(...) |
Any | 确定通过搜索序列是否有任何元素满足指定条件 | 不适用 | 聚合... In ... Into Any() |
Contains | 如果发现特定元素存在,则返回"True"值序列如果序列不包含该特定元素,则返回'false'值 | 不适用 | 不适用 |
Divi将输入序列分成两个单独的部分,而不重新排列序列的元素,然后返回其中一个.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
Skip | 跳过序列中指定数量的元素并返回剩余的元素 | 不适用 | Skip |
SkipWhile | 与Skip相同,唯一的例外是该号码要跳过的元素由布尔条件指定 | 不适用 | 跳过 |
Take | 从序列中取出指定数量的元素并跳过剩余的元素 | 不适用 | Take |
TakeWhile | 与Take相同,但要采用的元素数由布尔条件指定 | 不适用 | Ta ke While |
创建一个新的值序列代际运算符.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
DefaultIfEmpty | 当应用于空序列,在序列中生成默认元素 | 不适用 | 不适用 |
Empty | 返回一个空的值序列,是最简单的世代运算符 | 不适用 | 不适用 |
Range | 基因对具有整数或数字序列的集合进行评级 | 不适用 | 不适用 |
Repeat | 生成包含特定长度重复值的序列 | 不适用 | 不适用 |
设置操作有四个运算符,每个运算符根据不同的标准产生结果.
显示示例中的操作
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
Distinct | 通过过滤重复数据(如果有的话)从集合中得到唯一值的列表 | 不适用 | 区别 |
Except | 比较两个集合的值并返回来自一个不在另一个集合中的集合 | 不适用 | 不适用 |
Intersect | 返回在两个单独的集合中找到相同的值集合 | 不适用 | 不适用 |
Union | 将两个不同集合的内容合并到一个列表中,也没有任何重复内容 | 不适用 | 不适用 |
比较两句话(可枚举的)并确定它们是否完全匹配.
Show示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
SequenceEqual | 如果发现两个序列彼此相同,则得到一个布尔值 | 不适用 | 不适用 |
除DefaultIfEmpty外,其余八个标准查询元素运算符都返回来自集合的单个元素.
显示示例
运算符 | 描述 | C#查询表达式语法 | VB查询表达式语法 |
---|---|---|---|
ElementAt | 返回集合中特定索引中存在的元素 | 不适用 | 不适用 |
ElementAtOrDefault | 与ElementAt相同,除了事实上,如果特定指数超出范围,它也会返回默认值 | 不适用 | 不适用 |
First | 检索集合中的第一个元素或满足特定条件的第一个元素 | 不适用 | 不适用 |
Fi rstOrDefault | 与First相同,除非它在没有这些元素的情况下也返回默认值 | 不适用 | 不适用 |
Last | 检索集合中存在的最后一个元素或满足特定条件的最后一个元素 | 不适用 | 不适用 |
LastOrDefault | 与Last相同,除非它还返回默认值,以防没有任何此类元素 | 不适用 | 不适用 |
Single | 返回集合的唯一元素或满足特定条件的唯一元素 | 不适用 | 不适用 |
SingleOrDefault | 与Single相同,只是如果没有ex,它也会返回默认值任何此类单独元素的等值 | 不适用 | 不适用 |
DefaultIfEmpty | 如果集合或列表为空或null,则返回默认值 | 不适用 | 不适用 |