我有一个长度为300000位的bitarray,并填充了布尔值(true& false)。我需要将所有这些位设置为null。那么,执行它的最佳方式是什么。我专注于速度。那么,通过PLINQ或任何其他并行线程执行此操作会更好吗?
BitArray.SetAll(vbNull)
这会有效吗?还有其他合适的方式?
答案 0 :(得分:1)
我尝试使用List(Of T)
,也只使用一个布尔值。
不是BitArray
集合不能将其值设置为Nothing
,而是布尔值。
布尔值显然只能是True
或False
,所以这就是问题所在。
这证明了我的陈述:
Dim b As Boolean = Nothing
MessageBox.Show(b.ToString()) 'Shows "False".
如果你真的需要一个可以“空”的布尔列表,你可以使用List(Of T)
(或者你喜欢的数组)和Nullable(Of Boolean)
:
使用List(Of T)
Dim BitList As New List(Of Nullable(Of Boolean))
使用数组:
Dim BitList() As Nullable(Of Boolean)
Read more about Nullable(Of T)
希望这有帮助!