次のコードに基づく:
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。