请考虑以下代码:
public class Person
(
public string FirstName {get; set;}
public string LastName {get; set;}
Public int Age {get; set;}
}
IEnumerable <Person> people;
Run Code Online (Sandbox Code Playgroud)
我在许多程序中也看到了类似的<IQueryable>含义?
这是什么意思IEnumerable<Person>?
IEnumerable<T>
一组事物可以以多种不同的方式存储,在列表中,在数组中,在数据库中等。这些存储机制的一个共同点是所保存的一组事物可以是枚举的,即每个可以使用诸如foreach例如的 语言构造来依次访问一个。
该接口表示所有事物IEnumerable<T>集的持有者都必须启用枚举的公共接口。因此,表示一个允许枚举一组对象的接口,而无需具体说明这些对象的实际存储方式。IEnumberable<PersonPerson
IQueryable<T>
这是 LINQ 的扩展,IEnumerable<T>但代表了 LINQ 特有的东西。在 LINQ 中,您可以指定一个可以过滤和转换一组(或多组)项目的查询。相对于纯粹的IEnumerable<T>接口,这被称为 LINQ to Objects,其中查询的每个阶段最终都是对扩展方法的简单调用。
然而,针对实现事物的对象IQueryable<T>可能会更加复杂。对象实现可以与不同的 LINQ提供程序IQueryable<T>相关联,该提供程序可以以不同的方式实现 LINQ 查询的执行。例如,可以通过与 LINQ-To-SQL 提供程序关联的类型来实现。在这种情况下,LINQ 查询将转换为 T-SQL 查询,然后针对数据库执行以获取一组项目(结果不一定是一组对象)。IQueryable<Person>Person
| 归档时间: |
|
| 查看次数: |
3521 次 |
| 最近记录: |