簡體   English   中英

在LINQ中使用Count()的最佳方法?

[英]Best way to use Count() in LINQ?

我有這行代碼

var count = materials.Where(i => i.MaterialType1 == MaterialType.Major).Count(); 

Resharper促使我改為

var count = materials.Count(i => i.MateriakType1 == MaterialType.Major); 

為什么? 任何人都可以告訴我改變的好處是什么?

如果總是更糟,我不會說第二個。 這取決於背景。

對於LINQ to Objects,最好使用第二個,因為它假設更快。 我沒有測試過,所以這只是我的猜測。

但是,要小心這樣的更改,因為它們並不總是等效的。 例如,如果你使用LINQ to Entities,那么第二個就根本不起作用! 這是因為LINQ to Entities支持帶謂詞的Count重載。

我認為這取決於你想如何使用它。 讓我們說你有一個問題:

var query=materials.Where(i => i.MaterialType1 == MaterialType.Major);
var query2=query.  ... sub query
var result=query.   ... some operation
var result=query.Count() ;

如果你用延遲執行編寫,那么我更願意首先編寫查詢並相應地使用它(而不是使用像Count()那樣的貪婪運算符),但正如我所說,取決於場景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM