重複の可能性:
C# で多次元 (2D) 配列のサイズを変更する方法は?
私は2D配列を持っています: myarray[5,6]; そして、私の配列はすでにいっぱいです。それでも、さらにいくつかの要素を追加したいと思います。では、配列のサイズを拡張する方法は? または、動的 2D 配列を宣言する方法は? (ばかげた質問をして申し訳ありません:P)
重複の可能性:
C# で多次元 (2D) 配列のサイズを変更する方法は?
私は2D配列を持っています: myarray[5,6]; そして、私の配列はすでにいっぱいです。それでも、さらにいくつかの要素を追加したいと思います。では、配列のサイズを拡張する方法は? または、動的 2D 配列を宣言する方法は? (ばかげた質問をして申し訳ありません:P)
欲しいものはエシカルList
ですList
。
List<List<int>> data = new List<List<int>>();
for(int i = 0; i < rowsToAdd; i++)
{
List<int> newRow = new List<int>();
for(int j = 0; j < columnsToAdd; j++)
{
newRow.Add(j);
}
data.Add(newRow);
}
次に、新しい行を追加します。
List<int> nextRow = new List<int>(){0,1,2,3};
data.Add(nextRow);
間違った問題の解決策を求めているのではないかと心配しています。(ほとんどの場合) 手動で配列のサイズを変更しないでください。ここですでに提案されているように、ジェネリック リスト (またはジェネリック リストのジェネリック リスト) を使用します。
次の暴言を読んでください:やや有害と見なされる配列
他の人がすでに提案しているように、一般的なリストを使用することを検討してください。
使用できますArray.Resize()
:
var arr = new int[10];
Array.Resize(ref arr, arr.Length * 2); // doubles the array size
アップデート
申し訳ありませんが、私はちょうど 2D を逃した:
この質問を見てください。
サイズを拡張する必要がある場合は、新しい配列を作成する必要があります。右側を見ると答えが見えます。