原文地址:http://blog.csdn.net/caesarliu1121/article/details/24775249
现在网上谈到Linq中的判断集合非空基本都说要用Any比Count好. 但真实情况是这样的吗?
首先我们要从Any和Count的差别说起.Any() 使用IEnumerator.GetEnumerator() 和 MoveNext() 來判断是否集合为空,而Count()则是返回整个集合的元素个数. 就像网上大多数文章所说的, Count() > 0 遇上 yeild return必定会出现性能问题。因为当遇到使用 yield return 返回集合的方法時,如果使用了 Count() 的話,就相当于遍历一遍整个集合然后得到集合个数。