2

検索しても何も見つからなかったので、これが重複していないことを願っています。

一見、同じように振る舞うと思いましたが、そうではありません。1 つは文字列の 2 次元配列で、もう 1 つは文字列配列の配列です。つまり、(List<string[]>)obj.ToArray() から返されるものです。

(List<string[]>)obj.ToArray() を使用してジャグ配列型を返す方法を知っています。

同様の概念を使用して 2 次元配列を返すにはどうすればよいですか。つまり、他のデータからコレクション オブジェクトを構築し、ToArray または 2 次元配列を返す他のメソッドを呼び出します。

ありがとう

4

2 に答える 2

8

1 つはジャグ配列で、もう 1 つは多次元配列です。

いくつかの違いがあります。多次元配列は、各行の長さが保証されます。ジャグ配列では、各「行」が配列であり、これらの配列はさまざまなサイズにすることができます。

もう 1 つの違いは、メモリ レイアウトにあります。多次元配列は単一のオブジェクトであり、配列要素はメモリ内でより近くにあることが保証されています。ジャグ配列は配列の配列であるため、特にマルチスレッドの状況では、各配列がメモリ内で順番に割り当てられるという保証はありません。

また、 .NET Framework Design Guidelines for Array Usage では、多次元ではなくジャグ配列を使用することが提案されていることにも注意してください。

√ 多次元配列の代わりにジャグ配列を使用することを検討してください。

于 2013-06-27T18:27:31.470 に答える
1

ギザギザ配列は文字列[][] 2次元配列は文字列[,]

つまり、string[,] を使用すると、各行には同じ数の要素が含まれます。string[][] では、各行の要素数が異なる場合があります。

于 2013-06-27T18:29:15.227 に答える