将所有“位数组”元素设置为null的最快速方法

时间:2015-08-19 18:55:43

标签: vb.net visual-studio-2012

我有一个长度为300000位的bitarray,并填充了布尔值(true& false)。我需要将所有这些位设置为null。那么,执行它的最佳方式是什么。我专注于速度。那么,通过PLINQ或任何其他并行线程执行此操作会更好吗?

BitArray.SetAll(vbNull)这会有效吗?还有其他合适的方式?

1 个答案:

答案 0 :(得分:1)

我尝试使用List(Of T),也只使用一个布尔值。

不是BitArray集合不能将其值设置为Nothing,而是布尔值。

布尔值显然只能是TrueFalse,所以这就是问题所在。

这证明了我的陈述:

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)

希望这有帮助!