1

在枚举之前对枚举调用 .Any() 有什么好处吗?例如(假设该列表是一个 IEnumerable):

if(list != null && list.Any()) 
{
    foreach(var item in list) 
    {
        // do stuff
    }
}

我怀疑它没有,但我宁愿确定。

4

3 回答 3

2

没有真正的好处,但Any在这里调用可能有缺点,因为您可能会枚举两次。

一个空检查就足够了。foreach 会为你处理剩下的事情。

于 2013-02-10T16:01:19.797 回答
0

不,真的。如果列表为空,您的 foreach 循环将根本不会迭代。

if(list != null) 
{
    foreach(var item in list) 
    {
        // do stuff
    }
}
于 2013-02-10T16:01:48.297 回答
0

不,没有真正的好处。

如果列表不为空,而是为空,则 foreach 会很好(即它不会抛出异常,也不会枚举空列表)。进行空值检查就足够了。

于 2013-02-10T16:02:30.443 回答