如何解决C#:对可枚举的对象进行计数
| 我试图获取存储在Ienumerable对象中的元素的数量。没有为此的count属性,那么如何获取var对象的count? 谢谢解决方法
您可以使用从.NET 3.5开始的Count()扩展方法:
IEnumerable<Foo> foos = ...
int numberOfFoos = foos.Count();
确保通过以下方式将其纳入范围:
using System.Linq;
不用担心性能,如果实际类型是例如静态数组或列表,则Count()
扩展方法足够智能,以至于不会遍历可枚举,在这种情况下它将直接使用基础的Length
或Count
属性。
, 您不能对ѭ5进行任何操作,除非对其进行迭代。
因此,要获得计数,您必须编写以下代码:
int count = 0;
foreach(var item in enumerable) {
++count;
}
// Now count has the correct value
为了节省您的尴尬,LINQ提供了Count
扩展方法。您需要做using System.Linq
才能使用它。
另外,请注意,根据ѭ5的性质,可能无法对其进行一次以上的迭代(尽管这种情况很少见)。如果您手中有这样的物体,则计算物品的数量将有效地使其对以后的工作毫无用处。
, 如果最终要将其转换为列表,最好先调用ToList。
尤其是当您的lambada表达式绑定一个外部变量时:
string str = \"A,B,C\";
int i = 0;
var result= str.Split(\',\').Select(x=>x+(i++).ToString());
var count = result.Count();
var list =result.ToList();
//Now list content is A3 B4 C5,obviously not you want.
, 您应该使用Count()
方法。可枚举没有Count
属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。