如何计算 IEnumerable 的项目数?

Don*_*Box 5 c#

给定一个实例,IEnumerable o我如何获取项目Count?(无需枚举所有项目

例如,如果实例是ICollectionICollection<T>IReadOnlyCollection<T>,则每个接口都有自己的Count方法。

Count通过反射获取属性是唯一的方法吗?

相反,我可以检查并转换oICollection<T>例如,以便我可以调用吗Count

Ada*_*m G 3

IEnumerable不承诺计数。如果它是随机序列或来自传感器的实时数据馈送怎么办?集合的大小完全有可能是无限的。对它们进行计数的唯一方法是从零开始,并为枚举器提供的每个元素递增。这正是 LINQ 所做的,所以不要重新发明轮子。LINQ 足够智能,可以使用.Count支持此功能的集合属性。