我正在構建一個類DLL,它將接受矩形和參差不齊的數組(一維,二維,三維等或鋸齒狀數組,鋸齒狀數組的鋸齒狀數組等)。 A For Each Item in RectangularArray
負責矩形陣列,但鋸齒陣列呢?使用For Each Item in JaggedArray
循環,項目因爲數組。 A For I As Integer = 0 to JaggedArray.GetUpperBound(0)
適用於交錯數組,但如果輸入是鋸齒狀數組()()()或()()()()或()()()()()的鋸齒陣列,等等等等?迭代Jagged數組
**基於Jods答案編輯 ,我想出了:
Public Shared Function Flatten(source As IEnumerable(Of Object)) As Object
For Each item As Object In source
If TypeOf item Is IEnumerable(Of Object) Then
For Each item2 As Object In Flatten(item)
Return item2
Next
Else
Return item
End If
Next
End Function
和
For Each x In Flatten(ListOfTables)
If Not Tables.Contains(x) Then Tables.Add(x)
Next
,但它與「無法投類型的對象「系統崩潰.Char'鍵入'System.Collections.IEnumerable'。「在For Each x In Flatten(ListOfTables)
。
這對我來說是全新的,任何想法我做錯了什麼?它返回的第一個條目是「c」c,但我希望它返回完整的字符串或「constraintenode」。
遞歸是做到這一點的唯一途徑,而不是與循環。 – ja72
ja72,我不確定你的意思?你能詳細說明嗎? – JoeB
看@jod解決方案。這就是我的意思。 – ja72