gpt4 book ai didi

.net - IQueryable 和 IEnumerable 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 03:56:30 25 4
gpt4 key购买 nike

IQueryable<T> 和有什么区别和IEnumerable<T>

<小时/>

另请参阅What's the difference between IQueryable and IEnumerable这与这个问题重叠。

最佳答案

首先, IQueryable<T> 扩展 IEnumerable<T>界面,所以你可以用“简单”做任何事情IEnumerable<T> ,您还可以使用 IQueryable<T>

IEnumerable<T>只是有一个 GetEnumerator()返回 Enumerator<T> 的方法您可以将其称为 MoveNext()方法来迭代 T 序列。

什么IQueryable<T>有那个IEnumerable<T> 有两个特别的属性 - 一个指向查询提供程序(例如 LINQ to SQL 提供程序),另一个指向查询表达式 代表IQueryable<T>对象作为运行时可遍历的抽象语法树,可以被给定的查询提供程序理解(在大多数情况下,您无法将 LINQ to SQL 表达式提供给 LINQ to Entities 提供程序而不引发异常)。

表达式可以只是对象本身的常量表达式,也可以是由一组查询运算符和操作数组成的更复杂的树。查询提供者的IQueryProvider.Execute()IQueryProvider.CreateQuery()调用方法时传递一个表达式,然后是查询结果或另一个 IQueryable分别返回。

关于.net - IQueryable<T> 和 IEnumerable<T> 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252785/

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