GroupBy 是否保证在结果和组上“foreach”是安全的?
var groupResult = list.GroupBy();
if(guarantees == false) // want to remove this check
if(groupResult==null)
return;
foreach(var group in groupResult)
{
if(guarantees == false)
if(group==null || group.Count()==0)
continue;
foreach(var element in group)
{
//do something
}
}
GroupBy
结果是否始终保证为非空,如果 GroupBy
中存在任何组,我们是否可以假定该组为非空?
换句话说,我可以假设 guarantees
总是正确的吗?
最佳答案
还可以查看集合中有多少个元素(组本身是一个集合,groupResult
中的所有组也是一个集合)。所以你可以检查是否有元素。
看看下面的代码:
if(groupResult.Count() > 0) { }
foreach (var group in groupResult)
if(group.Count() > 0) { }
结合检查 null
值:
if(group != null && group.Count() > 0) { }
这里短路将保证如果 group
是 null
那么它不会检查第二个条件,在这种情况下可能会抛出异常。
关于c# - LINQ 中的 GroupBy 保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53850219/