标题说明了一切。我当前的版本是:
Public Function GetBitArrayPart(ByVal BitArray As BitArray, _
ByVal IndexStart As Integer, _
ByVal IndexEnd As Integer) As BitArray
If IndexStart < 0 OrElse IndexEnd > BitArray.Length - 1 OrElse IndexEnd < IndexStart Then
Return New BitArray(0)
End If
Dim i As Integer
Dim outputBA As New BitArray(IndexEnd - IndexStart + 1)
For i = 0 To outputBA.Length - 1
outputBA(i) = BitArray(IndexStart + i)
Next
Return outputBA
End Function我必须指定查找bitAarrays的大小很大。我不明白为什么使用System.String存储相同数量的信息来检索该字符串的一部分要比使用BitArray更快。出于这个原因,我开始分析我的函数的性能。
发布于 2017-11-14 14:40:33
我不确定它是否会更快,但这里有一个基于复制到数组并从它创建一个新的BitArray的实现:
Public Function GetBitArrayPart(ByVal BitArray As BitArray, _
ByVal IndexStart As Integer, _
ByVal IndexEnd As Integer) As BitArray
If IndexStart < 0 OrElse IndexEnd > BitArray.Length - 1 OrElse IndexEnd < IndexStart Then
Return New BitArray(0)
End If
Dim arr as Boolean()
BitArray.CopyTo(arr, 0)
Return new BitArray(arr.Skip(IndexStart).Take(IndexEnd - IndexStart).ToArray())
End Functionhttps://stackoverflow.com/questions/47265576
复制相似问题