gpt4 book ai didi

.net - IEnumerable:在 OOP 的上下文中是什么意思

转载 作者:行者123 更新时间:2023-12-04 14:53:06 25 4
gpt4 key购买 nike

请考虑以下代码:

public class Person
(
public string FirstName {get; set;}
public string LastName {get; set;}
Public int Age {get; set;}
}

IEnumerable <Person> people;

我也在许多程序中看到过 <IQueryable>这意味着什么 ?
IEnumerable<Person>是什么意思这里 ?

最佳答案

IEnumerable<T>

有许多不同的方式可以将一组事物存储在列表中、数组中、数据库中等。这些存储机制的一个共同点是保存的一组事物可以是。枚举 ,即可以使用诸如 foreach 之类的语言结构一个接一个地访问每一个。例如。
IEnumerable<T> interface 表示所有事物集的持有者必须启用枚举的公共(public)接口(interface)。因此IEnumberable<Person表示允许枚举 Person 的 Set 的接口(interface)对象,而不具体说明这些对象的实际存储方式。

IQueryable<T>

这是 IEnumerable<T> 的扩展但代表特定于 LINQ 的东西。在 LINQ 中,您可以指定 查询 可以过滤和转换一组(或多组)项目。反对纯粹的IEnumerable<T>接口(interface)这将被称为 LINQ to Objects,其中查询中的每个阶段最终都是对扩展方法的简单调用。

然而,针对实现 IQueryable<T> 的对象事情可以更复杂。实现 IQueryable<T> 的对象可以与不同的 LINQ 关联提供者 它可能以不同的方式实现 LINQ 查询的执行。例如 IQueryable<Person>可以由与 LINQ-To-SQL 提供程序关联的类型实现。在这种情况下,LINQ 查询被转换为 T-SQL 查询,并针对数据库执行以获取一组项目(结果可能不一定是一组 Person 对象)。

关于.net - IEnumerable:在 OOP 的上下文中是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com