System.Linq和System.Linq.Expressions命名空间
来源:互联网 发布:手机录音软件排行 编辑:程序博客网 时间:2024/06/06 15:45
System.Linq 命名空间提供类和接口支持使用查询的 语言集成查询 (LINQ)。
类
IEnumerable<T>
。 EnumerableExecutor 表示一个表达式树,并提供在重写之后执行表达式树的功能。 EnumerableExecutor<T>
此 API 支持 产品 基础结构,不应从代码直接使用。 表示一个表达式树,并提供在重写之后执行表达式树的功能。 EnumerableQuery 此 API 支持 产品 基础结构,不应从代码直接使用。 表示 IEnumerable 作为 EnumerableQuery 数据源。 EnumerableQuery<T>
此 API 支持 产品 基础结构,不应从代码直接使用。 表示作为 IQueryable<T>
数据源的 IEnumerable<T>
集合。 Lookup 表示键的集合,其中每个键映射到一个或多个值。 OrderedParallelQuery<TSource>
表示一个排序的并行序列。 ParallelEnumerable 提供一组用于查询实现 ParallelQuery{TSource} 的对象的方法。 此命令的并行等效 Enumerable。 ParallelQuery 表示一个并行序列。 ParallelQuery<TSource>
表示一个并行序列。 Queryable 提供了一套 static (Shared 在 Visual Basic 中) 方法来查询数据结构,并实现 IQueryable<T>
。接口
IEnumerable<T>
值的序列。 IOrderedEnumerable<TElement>
表示一个排序的序列。 IOrderedQueryable 表示排序操作的结果。 IOrderedQueryable<T>
表示排序操作的结果。 IQueryable 提供针对特定数据源(其中数据类型未指定)评估查询的功能。 IQueryable<T>
提供针对特定数据源(其中数据类型未未知)评估查询的功能。 IQueryProvider 定义用于创建和执行查询所描述的方法 IQueryable 对象。枚举
备注
System.Linq 命名空间是在 System.Core 程序集中 (在 System.Core.dll)。
Enumerable 类包含 LINQ 实现的对象运行的标准查询运算符 IEnumerable<T>
。
Queryable 类包含 LINQ 实现的对象运行的标准查询运算符 IQueryable<T>
。
关于 LINQ to SQL 的信息,请参阅 LINQ to SQL [LINQ to SQL]。
System.Linq.Expressions 命名空间包含类、 接口和枚举可使语言级代码表达式表示为表达式目录树形式的对象。
类
Expression<TDelegate>
将强类型化的 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 表示具有一元运算符的表达式。接口
IList <T>
上而不是 ReadOnlyCollection 上。 IList<T>
将节约用在为每个节点分配 ReadOnlyCollection 方面的成本。 第二次优化能够创建专用的子类,可保留特定数量的参数(例如,Block2、Block3、Block4)。 因此,这些节点避免了分配用于存储其元素的 ReadOnlyCollection 和数组,从而为每个节点节省了 32 个字节。 表达式树节点继续公开 ReadOnlyCollections 的原始 LINQ 属性。 这些节点通过重复使用用于存储数组或元素(通常存储在数组中)的字段来执行此操作。 对于数组用例,集合将类型化为 IList<T>
,而不是 ReadOnlyCollection<T>
。 当节点在最初构造时它是一个数组。 当编译器访问成员时它会使用此接口。 访问数组元素可以将数组升级到 ReadOnlyCollection。 对于对象用例,我们会存储类型化为对象的字段中的第一个参数。 当最初构造该节点时,该字段将持有该表达式。 编译器通过此接口访问参数,第一个参数的访问器使用 Expression.ReturnObject 返回用于处理表达式或 ReadOnlyCollection 用例的对象。 当用户访问 ReadOnlyCollection 时,将更新对象字段以直接保留 ReadOnlyCollection。 表达式始终返回相同的 ReadOnlyCollection,这一点很重要。 否则,将中断重写树查看器。 从 LINQ v1 返回不同的 ReadOnlyCollections 形成相同的表达式节点,这是一个重大突破。 当前用户可以依赖对象标识来区分该节点是否已更改。 在重载字段中存储 ReadOnlyCollection 既可减少内存使用量,又可保持公共 API 兼容性。 IDynamicExpression 提供用于访问 DynamicExpression 树节点的参数及 CallSite 和重写功能的内部接口。 不应使用此 API。 由于 DLL 重构,它只能是公共的;并且仅用于内部性能优化。枚举
备注
抽象类 Expression
提供了用于对模型表达式树类层次结构的根。
派生自该命名空间中的类 Expression, ,例如 MemberExpression 和 ParameterExpression, ,用于表示表达式树中的节点。 Expression 类包含 static (Shared 在 Visual Basic 中) 工厂方法,用于创建表达式树节点的各种类型。
枚举类型 ExpressionType
指定唯一的节点类型。
阅读全文
0 0
- System.Linq和System.Linq.Expressions命名空间
- System.Linq.Expressions 命名空间
- System.Linq.Expressions.Expression使用案例
- using System.Linq命名空间无法引用!的解决方案
- System.Linq
- System.Linq
- 错误:CS0234: 命名空间“System”中不存在类型或命名空间名称“Linq”的解决方法
- 命名空间“System”中不存在类型或命名空间名称“Linq“
- 命名空间“System”中不存在类型或命名空间名称“Linq”。
- 命名空间“System”中不存在类型或命名空间名称“Linq”。是否缺少程序集引用?
- System.Linq.Expressions.Expression 的 320个方法、2个构造函数和3个属性
- System.Linq.Expressions.Expression 的 320个方法、2个构造函数和3个属性
- CS0234: 命名空间“System”中不存在类型或命名空间名称“Linq”(是否缺少程序集引用?)
- 编译器错误消息: CS0234: 命名空间“System”中不存在类型或命名空间名称“Linq”(是否缺少程序集引用?)
- 命名空间“System”中不存在类型或命名空间名称“Linq”(是缺少程序集引用吗?)
- 命名空间“System.Data”中不存在类型或命名空间名称“Linq”(是否缺少程序集引用?)
- CS0234: 命名空间“System”中不存在类型或命名空间名称“Linq”(是缺少程序集引用吗?)
- 方便的System.Linq
- python引用同一包中其他.py文件的类
- python基础知识之列表
- 新闻更新时通过微信提醒(以SJTU奖学金信息为例)
- TypeError
- JavaScript基础之查找和过滤
- System.Linq和System.Linq.Expressions命名空间
- 树莓派3:Python3调用Web Service
- RocketMQ与Kafka对比
- 70. Climbing Stairs
- (*p)++和*(p++)和*p++的区别
- 本地页面之间共享消息或变量(localStorage)
- jdbc对于模糊查询like语句嵌套变量的sql语句写法
- 大型分布式网站术语分析
- Weblogic 12c集群部署