微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#:对可枚举的对象进行计数

如何解决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 举报,一经查实,本站将立刻删除。