這是一個關於性能的問題。這裏有個模式我看到在這兩個我自己的代碼有很多和我的同事當結果很可能時,IQueryable ToList()更喜歡.Count()嗎?
var items = GetItems();
變量items
的代碼現在包含一個IQueryable
將從數據庫返回一個,多個或沒有行。
然後:
if (items.Any()) {
//do something, but only if there are items
foreach (var item in items) {
...
}
//do something else, but only if there are items
}
因此,我們將執行兩個動作和循環的情況下,也有項目。假設會有通常是退回的貨品,那豈不是更有意義編輯上面的代碼:
var items = GetItems().ToList();
所以我Any()
(有時甚至.Count() > 0
)
你認爲怎麼樣這個?假設GetItems()返回一個本身不慢的複雜查詢,但仍然非常複雜。
它可以返回很多結果,您不希望將它們都放在內存中嗎? –