我一直在与同事讨论这个问题,我们无法弄清楚C#中.Any
任何给定的用途是什么List<>
。
您可以像下面的语句那样检查数组中元素的有效性:
if (MyList.Any()){ ...} //Returns true or false
完全一样
if (MyList.Count() != 0) { ... }
并且更加常见,易读并且清楚if
声明的意图。
最后,我们陷入了这种想法:
.Any()
可以使用,但效果也一样,但是对程序员的意图尚不清楚,因此不应该使用它。
但是我们觉得这是不对的。我们一定缺少一些东西。
是吗
Any()
不太明确提出质疑: Any()
在我看来,尤其是在λ条件下,这种说法更加明确。我将代码翻译成英文,if(MyList.Count(o => o > 10) > 0)
变成“大于10的项目数是否大于0?” 而if(MyList.Any(o => o > 10))
变成“是否有大于10的项目?”
Any
IS Exists
。Linq名称可能更受Haskell和Python的启发,它们也具有任何/所有功能。