基于以下代码:
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。