我正在构建一个类 DLL,它将接受矩形和锯齿状数组(1D、2D、3D 等或锯齿状数组、锯齿状数组的锯齿状数组等)。AFor Each Item in RectangularArray
负责矩形阵列,但是锯齿阵列呢?使用For Each Item in JaggedArray
循环,Item 因为是 Array。AFor I As Integer = 0 to JaggedArray.GetUpperBound(0)
适用于锯齿状数组,但如果输入是锯齿状数组的锯齿状数组 ()()() 或 ()()()() 或 ()()()()() 等等等等等?
**编辑基于 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
但它因“无法将'System.Char'类型的对象转换为'System.Collections.IEnumerable'类型而崩溃。” 上For Each x In Flatten(ListOfTables)
。
这对我来说是全新的,任何想法我做错了什么?它返回的第一个条目是“c”c,但我希望它返回完整的字符串或“constraintenode”。