IEnumerable 是否是允许筛选的数据的良好返回类型
本文关键字:数据 返回类型 筛选 是否是 许筛选 IEnumerable | 更新日期: 2023-09-27 18:30:49
我刚刚读了这个问题,它让我想到为什么在检索数据时需要使用IEnumerable
。 我了解IQueryable
和IEnumerable
之间的差异,但是对于允许过滤的数据,IEnumerable
对象会更好吗? 例如,包含包含日期的记录的表,因此我可以按日期排序。
如果内存中有对象 - 而不是来自其他数据源(如数据库),请使用 IEnumerable<T>
。这样,内置的 LINQ to Objects 将自动工作。
您甚至可以通过编写自定义扩展方法并使用 yield return
和 yield break
将 LINQ 扩展到对象。
如果您使用的是实体框架或其他使用IQueryable<T>
的系统,我会将其保留为IQueryable<T>
,直到您需要它作为对象为止。
这取决于。
如果要首先接收所有数据,然后筛选返回的对象集,请使用 IEnumerable。
如果要在数据库上启用过滤(例如Linq-to-sql/Entity Framework),最好使用IQueryable。