System.Linq和System.Linq.Expressions命名空间

System.Linq 命名空间提供类和接口支持使用查询的 语言集成查询 (LINQ)。

说明
Enumerable 提供了一套 static (Shared 在 Visual Basic 中) 用于查询实现的对象方法 IEnumerable
EnumerableExecutor 表示一个表达式树,并提供在重写之后执行表达式树的功能。
EnumerableExecutor 此 API 支持 产品 基础结构,不应从代码直接使用。 表示一个表达式树,并提供在重写之后执行表达式树的功能。
EnumerableQuery 此 API 支持 产品 基础结构,不应从代码直接使用。 表示 IEnumerable 作为 EnumerableQuery 数据源。
EnumerableQuery 此 API 支持 产品 基础结构,不应从代码直接使用。 表示作为 IQueryable 数据源的 IEnumerable 集合。
Lookup 表示键的集合,其中每个键映射到一个或多个值。
OrderedParallelQuery 表示一个排序的并行序列。
ParallelEnumerable 提供一组用于查询实现 ParallelQuery{TSource} 的对象的方法。 此命令的并行等效 Enumerable。
ParallelQuery 表示一个并行序列。
ParallelQuery 表示一个并行序列。
Queryable 提供了一套 static (Shared 在 Visual Basic 中) 方法来查询数据结构,并实现 IQueryable

接口

接口 说明
IGrouping 表示具有公共键的对象的集合。
ILookup 定义索引器、 大小属性,并将键映射到的数据结构的布尔搜索方法 IEnumerable 值的序列。
IOrderedEnumerable 表示一个排序的序列。
IOrderedQueryable 表示排序操作的结果。
IOrderedQueryable 表示排序操作的结果。
IQueryable 提供针对特定数据源(其中数据类型未指定)评估查询的功能。
IQueryable 提供针对特定数据源(其中数据类型未未知)评估查询的功能。
IQueryProvider 定义用于创建和执行查询所描述的方法 IQueryable 对象。

枚举

枚举 说明
ParallelExecutionMode 查询执行模式是一个提示,指定在对查询进行并行化时系统应如何处理性能权衡。
ParallelMergeOptions 指定首选的类型 输出合并 要在查询中使用。 换而言之,它指示 PLINQ 应如何将来自各个分区的结果合并回单个结果序列。 这只是一个提示,并且在对所有查询进行并行化时系统可能不会遵循此提示。

备注

System.Linq 命名空间是在 System.Core 程序集中 (在 System.Core.dll)。

Enumerable 类包含 LINQ 实现的对象运行的标准查询运算符 IEnumerable

Queryable 类包含 LINQ 实现的对象运行的标准查询运算符 IQueryable

关于 LINQ to SQL 的信息,请参阅 LINQ to SQL [LINQ to SQL]。


System.Linq.Expressions 命名空间包含类、 接口和枚举可使语言级代码表达式表示为表达式目录树形式的对象。

说明
BinaryExpression 表示具有二进制运算符的表达式。
BlockExpression 表示包含一个表达式序列的块,表达式中可定义变量。
CatchBlock 表示 try 块中的 catch 语句。
ConditionalExpression 表示具有条件运算符的表达式。
ConstantExpression 表示具有常数值的表达式。
DebugInfoExpression 发出或清除调试信息的序列点。 这使调试器能够在调试时突出显示正确的源代码。
DefaultExpression 表示一个类型或空表达式的默认值。
DynamicExpression 表示一个动态操作。
DynamicExpressionVisitor 表示动态表达式树的访问者或重写者。
ElementInit 表示 IEnumerable 集合的单个元素的初始值设定项。
Expression 提供一种基类,表示表达式树节点的类派生自该基类。 它还包含用来创建各种节点类型的 static(在 Visual Basic 中为 Shared)工厂方法。 这是一个 abstract 类。
Expression 将强类型化的 Lambda 表达式表示为表达式树形式的数据结构。 此类不能被继承。
ExpressionVisitor 表示表达式树的访问者或重写者。
GotoExpression 表示无条件跳转。 这包括返回语句,break 和 continue 语句以及其他跳转。
IndexExpression 表示对一个属性或数组进行索引。
InvocationExpression 表示一个将委托或 lambda 表达式应用到一个自变量表达式列表的表达式。
LabelExpression 表示一个标签,可以放置在任何 Expression 上下文。 如果它跳转到,它会提供相应的值 GotoExpression。 否则,它接收中的值 DefaultValue。 如果 Type 等于 System.Void,则应提供任何值。
LabelTarget 用来表示目标的 GotoExpression。
LambdaExpression 介绍 lambda 表达式。 它捕获一个类似于 .NET 方法主体的代码块。
ListInitExpression 表示具有集合初始值设定项的构造函数调用。
LoopExpression 表示无限循环。 可通过“中断”退出该循环。
MemberAssignment 表示对象的字段或属性的赋值操作。
MemberBinding 提供表示绑定的类派生自的基类,这些绑定用于对新创建对象的成员进行初始化。
MemberExpression 表示访问字段或属性。
MemberInitExpression 表示调用构造函数并初始化新对象的一个或多个成员。
MemberListBinding 表示初始化新创建对象的一个集合成员的元素。
MemberMemberBinding 表示初始化新创建对象的一个成员的成员。
MethodCallExpression 表示对静态方法或实例方法的调用。
NewArrayExpression 表示创建一个新数组,并可能初始化该新数组的元素。
NewExpression 表示一个构造函数调用。
ParameterExpression 表示一个命名的参数表达式。
RuntimeVariablesExpression 一个表达式,提供变量的运行时读/写权限。
SwitchCase 表示的一种情况 SwitchExpression。
SwitchExpression 表示通过将控制权传递给处理多个选择的控件表达式 SwitchCase。
SymbolDocumentInfo 存储用于发出源文件调试符号信息所必要的信息,尤其是文件名和唯一的语言标识符。
TryExpression 表示一个 try/catch/finally/fault 块。
TypeBinaryExpression 表示表达式和类型之间的操作。
UnaryExpression 表示具有一元运算符的表达式。

接口

接口 说明
IArgumentProvider 提供用于访问多个树节点(DynamicExpression、ElementInit、MethodCallExpression、InvocationExpression、NewExpression 和 InexExpression)的参数的内部接口。 不应使用此 API。 它只会由于 DLL 重构而公开并仅用于内部性能优化。
这能够实现两次优化,从而减少了表达式树的大小。 第一次优化可以使树节点保留在 IList 上而不是 ReadOnlyCollection 上。 IList 将节约用在为每个节点分配 ReadOnlyCollection 方面的成本。 第二次优化能够创建专用的子类,可保留特定数量的参数(例如,Block2、Block3、Block4)。 因此,这些节点避免了分配用于存储其元素的 ReadOnlyCollection 和数组,从而为每个节点节省了 32 个字节。
表达式树节点继续公开 ReadOnlyCollections 的原始 LINQ 属性。 这些节点通过重复使用用于存储数组或元素(通常存储在数组中)的字段来执行此操作。
对于数组用例,集合将类型化为 IList,而不是 ReadOnlyCollection。 当节点在最初构造时它是一个数组。 当编译器访问成员时它会使用此接口。 访问数组元素可以将数组升级到 ReadOnlyCollection。
对于对象用例,我们会存储类型化为对象的字段中的第一个参数。 当最初构造该节点时,该字段将持有该表达式。 编译器通过此接口访问参数,第一个参数的访问器使用 Expression.ReturnObject 返回用于处理表达式或 ReadOnlyCollection 用例的对象。 当用户访问 ReadOnlyCollection 时,将更新对象字段以直接保留 ReadOnlyCollection。
表达式始终返回相同的 ReadOnlyCollection,这一点很重要。 否则,将中断重写树查看器。 从 LINQ v1 返回不同的 ReadOnlyCollections 形成相同的表达式节点,这是一个重大突破。 当前用户可以依赖对象标识来区分该节点是否已更改。 在重载字段中存储 ReadOnlyCollection 既可减少内存使用量,又可保持公共 API 兼容性。
IDynamicExpression 提供用于访问 DynamicExpression 树节点的参数及 CallSite 和重写功能的内部接口。 不应使用此 API。 由于 DLL 重构,它只能是公共的;并且仅用于内部性能优化。

枚举

枚举 说明
ExpressionType 介绍表达式树节点的节点类型。
GotoExpressionKind 指定内容类型的跳转这 GotoExpression 表示。
MemberBindingType 描述中使用的绑定类型 MemberInitExpression 对象。

备注

抽象类 Expression 提供了用于对模型表达式树类层次结构的根。

派生自该命名空间中的类 Expression, ,例如 MemberExpression 和 ParameterExpression, ,用于表示表达式树中的节点。 Expression 类包含 static (Shared 在 Visual Basic 中) 工厂方法,用于创建表达式树节点的各种类型。

枚举类型 ExpressionType 指定唯一的节点类型。

你可能感兴趣的:(.NET,LINQ)