在.NET中,最好是调用.Count(),还是在可用时调用.Count?

Erw*_*yer 2 .net c# linq count

导入Linq命名空间时,可以同时使用.Count()和.Count(例如,在实现IList的对象上).

.Count()将调用.Count属性(如果可用),如下所示: C#Count()扩展方法性能

是否更好地直接使用.Count而不是.Count(),以获得(小)性能增益?

更新:这里有趣的性能数据(1-2个数量级):Linq Count()是否比List.Count或Array.Length更快或更慢?

Fem*_*ref 6

性能将是相同的,因为Count()扩展方法检查它是否是一个ICollection并使用Count属性(如果它是(.net linq堆栈)).

参考:msdn(备注)

  • 好吧,它会执行一个额外的方法调用并发出一个强制转换,所以它不是*相同*真的.但我同意,对于正常使用,这种差异并不重要. (4认同)

Luc*_*ero 6

我个人的偏好是坚持使用现有的方法和属性,如果它们可以在没有铸造的情况下使用.因此我会用Count.