C# 如何对IEnumerable进行计数?
我希望能够测试下面的obj计数,但不能这样做。 当我将鼠标移到obj上时,它显示计数为3C# 如何对IEnumerable进行计数?,c#,C#,我希望能够测试下面的obj计数,但不能这样做。 当我将鼠标移到obj上时,它显示计数为3 <IEnumerable<File> obj = await _mytester.cleanup(myitems) 上面的行给了我一个错误你不能这样做,因为IEnumerable上不存在计数,这是出于设计 您可以像这样使用IEnumerable.Count(): if(obj.Count()>0) 但这是非常低效的,因为你实际上只是在检查那里是否有任何东西 你最好这样做: if(
<IEnumerable<File> obj = await _mytester.cleanup(myitems)
上面的行给了我一个错误你不能这样做,因为
IEnumerable
上不存在计数
,这是出于设计
您可以像这样使用IEnumerable.Count()
:
if(obj.Count()>0)
但这是非常低效的,因为你实际上只是在检查那里是否有任何东西
你最好这样做:
if(obj.Any())
这两种方法都是由LINQ扩展方法提供的
非常重要的是要注意,
Count()
正在迭代所有元素,远没有像ICollection.Count那样高效。Count
您可以调用Count()
扩展方法<代码>如果(对象计数()>0).。您可能希望使用Any()
来检查序列是否为空if(obj.Any())…
请参见,也没有任何理由使IEnumerable
具有有限计数。您需要使用System.Linq添加才能访问.NET3.5及更高版本中的这些方法,但我完全同意使用.Any()
。
if(obj.count > 0)