1. ホーム
  2. c#

[解決済み】.NETで2つの配列をマージする

2022-04-05 23:48:48

質問

.NET 2.0には、2つの配列を取得して1つの配列にマージする組み込み関数がありますか?

配列は2つとも同じ型です。私のコードベース内で広く使われている関数からこれらの配列を取得しているのですが、データを別の形式で返すように関数を変更することができません。

可能であれば、これを達成するために独自の関数を書くことは避けたいと考えています。

どのように解決するのですか?

配列の1つを操作できる場合は、コピーを実行する前にサイズを変更することができます。

T[] array1 = getOneArray();
T[] array2 = getAnotherArray();
int array1OriginalLength = array1.Length;
Array.Resize<T>(ref array1, array1OriginalLength + array2.Length);
Array.Copy(array2, 0, array1, array1OriginalLength, array2.Length);

そうでない場合は、新しい配列を作成します

T[] array1 = getOneArray();
T[] array2 = getAnotherArray();
T[] newArray = new T[array1.Length + array2.Length];
Array.Copy(array1, newArray, array1.Length);
Array.Copy(array2, 0, newArray, array1.Length, array2.Length);

MSDNで利用可能なArrayメソッドについて詳しく見る .