在枚举之前调用Any()超过IEnumerable有什么好处呢?

时间:2013-02-10 15:46:13

标签: c# linq

在枚举之前,在枚举上调用.Any()有什么好处吗?例如(授予该列表是IEnumerable):

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

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

3 个答案:

答案 0 :(得分:2)

没有真正的好处,但在这里调用Any可能会有不利的后果,因为你可以枚举两次。

空检查应该足够了。 foreach将为您照顾其余部分。

答案 1 :(得分:0)

不,不是真的。如果列表为空,则foreach循环将不会迭代。

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

答案 2 :(得分:0)

不,没有真正的好处。

如果列表不为null,但为空,则foreach将没有问题(即它不会抛出异常,也不会枚举空列表)。 进行空检查就足够了。