【发布时间】:2021-06-22 21:11:51
【问题描述】:
我创建了一个固定大小的List
private List<ushort> responseData = new List<ushort>(7);
项目已添加到反应性可观察对象上,但我想知道每个订阅是否已满。
目前已被检查
if (responseData.Count == 7)
由于 responseData 的大小是动态的,我不会在 List 的初始化和检查它是否已满时使用静态的 7。但是,我只是想知道我是否已经设置了 responseData 大小;不再次使用尺寸参考就不能检查吗?
我非常重视任何回应。
【问题讨论】:
-
您在寻找
responseData.Count == responseData.Capacity吗? -
嗯,7 只是初始大小。除此之外,基础数据结构将被扩展以处理新项目。似乎您想要一个具有最大大小的列表。如果是这样,您需要提供有关您计划如何使用它的更多信息。
-
您可以为 List
实现一个名为 IsFull() 的扩展方法,并且 List 的任何实例都可以访问此扩展方法...此文档可能会有所帮助:@987654321 @ -
现在我不确定您到底在寻找什么。您始终可以编写一个名为
IsFull的扩展方法,最终检查responseData.Count == responseData.Capacity。您能否准确地定义“已满”的含义以及“更可靠或更智能的方法”的含义(即当前的方法如何不可靠、不智能)? -
一个列表不可能是满的。它可以存储无限数量的项目。如果您想使用具有固定容量但实际上会被填满的数据结构,则需要使用不同的数据结构(可能是由 List 支持的数据结构,但这实际上以某种方式防止自身超出容量)和可以有成员来指示它是否已满,或者任何其他对具有容量的集合有意义的操作。