IEnumerable 是否是允许筛选的数据的良好返回类型

本文关键字:数据 返回类型 筛选 是否是 许筛选 IEnumerable | 更新日期: 2023-09-27 18:30:49

我刚刚读了这个问题,它让我想到为什么在检索数据时需要使用IEnumerable。 我了解IQueryableIEnumerable之间的差异,但是对于允许过滤的数据,IEnumerable对象会更好吗? 例如,包含包含日期的记录的表,因此我可以按日期排序。

IEnumerable 是否是允许筛选的数据的良好返回类型

如果内存中有对象 - 而不是来自其他数据源(如数据库),请使用 IEnumerable<T> 。这样,内置的 LINQ to Objects 将自动工作。

您甚至可以通过编写自定义扩展方法并使用 yield returnyield break 将 LINQ 扩展到对象。

如果您使用的是实体框架或其他使用IQueryable<T>的系统,我会将其保留为IQueryable<T>,直到您需要它作为对象为止。

这取决于。

如果要首先接收所有数据,然后筛选返回的对象集,请使用 IEnumerable。

如果要在数据库上启用过滤(例如Linq-to-sql/Entity Framework),最好使用IQueryable。