大量布尔值有拳击问题吗?还有其他选择吗?
我需要一个布尔值列表(大小从 200 到 200k 之间)。如果我使用 System.Collections.Generic.List
有哪些替代方案? (当然我知道我可以使用布尔数组,但我需要能够轻松地从数组中添加和删除内容)
编辑:
我的另一个问题是(与最重要的问题类似)如果我需要一个整数列表怎么办,我有什么解决办法?
I need a list of booleans (size anywhere from 200 to 200k). If i use System.Collections.Generic.List<bool>
I'm going to suffer from serious boxing issues (correct me if I'm wrong).
What are the alternatives? (of course i know i can use a boolean array but i need to be able to add and remove things easily from the array)
Edit:
another question i have is (similarly to the top question,) what if i need a list of integers, what solutions do i have?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据此:
http://www.dijksterhuis.org/exploring-boxing/
通用列表完全消除了装箱问题。
另外,我多次在列表中保存许多整数、字符串等,没有出现性能问题。事实上,我以前持有过 1,000,000 美元,没有任何问题。
According to this:
http://www.dijksterhuis.org/exploring-boxing/
The generic list completely removes the boxing issues.
Also, I've held that many ints, strings, etc in a List many times with no performance issues. In fact, I've held up to 1,000,000 before without a problem.
尝试使用 BitArray 类:http://msdn.microsoft.com/en-us/library/system.collections.bitarray.aspx" rel="nofollow">http:// /msdn.microsoft.com/en-us/library/system.collections.bitarray.aspx
编辑:如果您担心空间问题,
BitArray
比小 8 倍列表
。BitArray
将为每个布尔值使用一位,而List
将为每个布尔值使用 8 位。Try the
BitArray
class: http://msdn.microsoft.com/en-us/library/system.collections.bitarray.aspxEdit: If space is your concern, the
BitArray
is 8 times smaller than aList<bool>
. ABitArray
will use one bit per boolean, whereas aList<bool>
will use 8 bits per boolean.