我有一個接口,這樣的...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的情況吧? –