0

テキスト ファイルを読み取るために VBA で使用される VB.Net クラスを作成しました。ユーザーがファイル内のどのテーブルを返したいかを指定できるように設定しました。私が行ったことは、テーブルの StringBuilder を構築し、それをギザギザの配列として返すことですが、ビルダーから配列部分への変換を正しく行うことができません。最初のレベルを「NewLine」で分割し、2 番目のレベルを「,」で分割したいと思います。

複数の配列やループを使用しなくても、これは可能ですか?

4

2 に答える 2

0

ネストされたリストとジェネリックを使用して、ジャグ配列を表すことができます。外側 (行) は一般的なリストで、内側 (列) は文字列のリストです。

他のアプローチでは XML や LINQ を利用できますが、効率は低下します。

于 2013-06-24T15:12:50.127 に答える
0

これにより、ジャグ配列が作成されます。

Dim myArray = (From row In myStringBuilder.ToString().Split({vbCrLf}, StringSplitOptions.None)
               Select (From col In row.Split(","c)
                       Select col
                      ).ToArray()
              ).ToArray()

説明:

  • まず、StringBuilder を String に変換します。myStringBuilder.ToString()
  • 次に、改行で分割します: Split({vbCrLf}, StringSplitOptions.None). Windows では改行は 2 文字で構成されるためSplit、文字列配列を受け入れるオーバーロードを使用します(したがって中かっこ)。
  • 行内で、行をコンマで分割します: Split(","c). はc、これが文字列ではなく文字であることを指定します。
  • ToArray最後に、外側の LINQ 式と内側の LINQ 式に適用することで、この列挙型の列挙型を配列の配列に変換します。
于 2013-06-24T15:19:49.130 に答える