:LINQ:使用IEnumerable.Count()或IList.Count基於下面的代碼更好的性能
var grouped = filters.GroupBy(p => p.PropertyName);
int numOfRowElements = grouped.Count();
foreach (IGrouping<string, PropertyFilter> filter in grouped)
{
foreach (var propertyFilter in filter)
{
// do something
}
}
,其中過濾器列表,我的理解是,調用IEnumerable.Count()強制查詢被執行。這個執行的結果存儲在分組變量中,然後在foreach循環中使用,或者foreach循環強制查詢再次執行?相反,這樣做會更好嗎?
var grouped = filters.GroupBy(p => p.PropertyName).ToList();
int numOfRowElements = grouped.Count;
foreach (IGrouping<string, PropertyFilter> filter in grouped)
{
foreach (var propertyFilter in filter)
{
// do something
}
}
TIA。
感謝您的徹底迴應。原始列表中的數據大小不會很大,但是此操作將在UI線程上執行很多。 –