首页 > 解决方案 > 如何对 IEnumerable 进行计数?

问题描述

我希望能够测试下面的 obj 计数,但不能这样做。当我将鼠标悬停在 obj 上时,它显示的计数为 3

    <IEnumerable<File> obj = await _mytester.cleanup(myitems)

为什么我不能这样做?

    if(obj.count > 0)

上面的线给了我一个错误

标签: c#

解决方案


你不能这样做,因为count不存在IEnumerable,这是设计使然。

你可以IEnumerable.Count()这样使用:

if (obj.Count() > 0)

但这非常低效,因为您实际上只是在检查那里是否有任何东西。

你最好这样做:

if (obj.Any())

这两者都是由 LINQ 扩展方法提供的。

非常重要的是要注意Count()迭代所有元素并且远没有像这样的东西那么有效ICollection.Count


推荐阅读