我有一个接口,这样的...Resharper,“返回类型可以IEnumerable ...”但为什么?
public interface IAccountRepository : IDisposable {
IQueryable<Account> FindByUserId(int userId); //here, Resharper says "Return type can be IEnumerable<Account>"
}
但ReSharper的是在暗示我将其更改为IEnumerable<Account> FindByUserId(int userId)
代替。
这是为什么?它不会强制整个对象被加载到内存中吗?我认为推迟执行直到真正需要对象才会更好?
例如,直到执行诸如'.Count()'或'.ToList()'等方法,才会将其加载到内存中。 –
这将是因为你的解决方案没有在'FindByUserId'返回的对象上使用任何'IQueryable'方法,所以R#建议你可以使返回类型更一般化。 –
porges
@ Pierre-LucPineault IQueryable允许在不预先将结果加载到内存中的对象的情况下进一步细化查询('.Where ...')。显然这不是IEnumerable的情况吧? –