長方形配列とギザギザ配列 (1D、2D、3D など、またはギザギザ配列、ギザギザ配列のギザギザ配列など) の両方を受け入れるクラス DLL を構築しています。長方形配列はAFor Each Item in RectangularArray
が処理しますが、ギザギザ配列はどうでしょうか。ループ付き、For Each Item in JaggedArray
配列なのでItem。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" を返すようにしたいと考えています。