0
我試圖拉平與ConvertAll多維數組,但我不能得到它的工作:ConvertAll失敗的NullReferenceException
Private Function Flatten(ByRef a As Object) As Object
Dim elements As Integer = 0
Dim size As Integer
For r = 0 To a.Rank - 1
size = a.GetUpperBound(r) - a.GetLowerBound(r) + 1
If elements = 0 Then
elements = size
Else
elements = elements * size
End If
Next
Dim result(elements - 1) As Object
' Fails !
result = a.ConvertAll(a, New Converter(Of Object, Object)(Function(x) x))
Return result
End Function
Sub Main()
Dim a(,) As Integer = {{1, 2, 3}, {4, 5, 6}}
Dim b(5) As Integer
b = Flatten(a)
End Sub
爲什麼它拋出的NullReferenceException?
由於
謝謝。可悲的是,你是對的。我被這個誤導了「當在多維數組之間進行復制時,數組的行爲就像一個長的一維數組,其中行(或列)在概念上是首尾相連的。例如,如果一個數組有三行(或多列)每個元素有四個元素,從數組開始複製六個元素將複製第一行(或列)的所有四個元素和第二行(或列)的前兩個元素。「從http://msdn.microsoft.com/en-us/library/k4yx47a1.aspx,這導致我認爲我可以擺脫它。 – smirkingman