首页 / 知识
关于c#:获取IEnumerable < T >的最佳方法
2023-04-13 06:42:00

The best way to get a count of IEnumerable
在不枚举IEnumerable集合中所有项目的情况下,最好/最简单的方法是什么? LINQ或Lambda可能吗?
无论如何,您都必须遍历它。 Linq提供了
解决方案取决于您为什么不希望对集合进行枚举。 如果是因为枚举集合可能很慢,那么没有解决方案会更快。如果可能,您可能要考虑使用ICollection。除非枚举非常慢(例如,它从磁盘读取项目),否则速度应该不是问题。 如果是因为枚举集合将需要更多代码,则已经以.Count()扩展方法的形式为您编写了该集合。只需使用MyEnumerable.Count()。 如果是因为您希望在计数后能够枚举集合,则.Count()扩展方法可以实现此目的。您甚至可以在枚举中间的集合上调用.Count(),该集合将从计数之前的位置继续进行。例如:
将给出结果
如果是因为枚举有副作用(例如,写入磁盘/控制台)或取决于在计数和枚举之间可能发生变化的变量(例如,从磁盘读取)[N.B。如果可能的话,我建议重新考虑体系结构,因为这可能会引起很多问题。]然后要考虑的一种可能性是将枚举读取到间歇存储中。例如:
以上所有条件均假定您无法更改类型(即,它是从您不拥有的库中返回的)。如果可能,您可能需要考虑更改为使用具有Count属性的ICollection或IList(ICollection的作用域比IList广泛)。 您将需要枚举才能计数。其他结构(如列表)保持运行状态。 用这个。
它将返回计数。
IEnumerable将必须遍历每个项目。获得全部计数。 IEnumerable myStrings = new List(){"一个","两个","三个"}; bool hasValues = myStrings.Any(); 这还取决于您希望通过计数来实现。.如果您有兴趣查找可枚举集合是否包含任何元素,则可以使用 myEnumerable.Count()之上的myEnumerable.Any(),其中前者将产生第一个元素,而后者将产生所有元素。 如果您想使用仍然有些灵活但具有所需功能的构造,则还有IList或ICollection。它们都暗示IEnumerable。 我认为最好的解决方案是执行以下操作: 如果您需要计数然后循环,那么最好列出一个列表。
如果您使用count检查成员,则可以使用 LINQ无法实现,因为调用.Count(...)会枚举集合。如果遇到无法遍历集合两次的问题,请尝试以下操作:
|
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc为什么开发人员喜欢在机器学习和人
为什么开发人员喜欢在机器学习和人工智能项目中使用Python?,代码,项目,数据,人工智能,平台,异常,增长,灵活,时间,工具,1.Python是灵活的PythoPython 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最Python集合和时间复杂度
Python集合和时间复杂度,项目,时间,数据,数字,照片,情况,通用,培训,平均,表示,在本文的这一部分中,我将记录CPython中的常见集合,然后概述它们Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Python 多线程死锁问题的巧妙解决
Python 多线程死锁问题的巧妙解决方法,异常,持有,代码,情况,信息,管理,数据,包装,策略,预期,死锁死锁的原理非常简单,用一句话就可以描述完。列举Python面向对象中带双下划线的
列举Python面向对象中带双下划线的特殊方法,信息,代码,培训,对象,属性,方法,实例,字符串,里边,内容,__new__:生成实例__init__:生成实例的属性_Python 枚举
Python 枚举,名称,代码,成员,培训,分析,定义,结果,别名,模块,上面,1.枚举的定义首先,定义枚举要导入enum模块。枚举定义用class关键字,继承Enum使用Python执行系统命令方法
使用Python执行系统命令方法,系统,信息,培训,标准,命令,方法,模块,操作,终端,中文,Python是一款操作简单的编程语言,内置丰富的库,能够很容易的Python 需求分析的方法
Python 需求分析的方法,系统,设计,分析,产品,网站,时间,服务,社会保险,证券,银行,需求分析518方法,简称我要发,具体就是5w1h8c5w+1h属于功能属