C# で 2つの配列をマージする

  1. C# の Array.Copy() メソッドを使用して 2つの配列をマージする
  2. C# の Array.Resize() メソッドを使用して 2つの配列をマージする
  3. C# で LINQ メソッドを使用して 2つの配列をマージする

このチュートリアルでは、C# で 2つの配列をマージする方法について説明します。

C# の Array.Copy() メソッドを使用して 2つの配列をマージする

Array.Copy() メソッドは、ある配列から別の配列に要素の範囲をコピーします。Array.Copy() メソッドを使用して、両方の配列の要素を 3 番目のマージされた配列にコピーできます。次のコード例は、C# で Array.Copy() メソッドを使用して 2つの配列をマージする方法を示しています。

using System;

namespace merge_arrays
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr1 = { 1, 2, 3 };
            int[] arr2 = { 4, 5, 6 };
            int[] arr3 = new int[arr1.Length + arr2.Length];
            Array.Copy(arr1, arr3, arr1.Length);
            Array.Copy(arr2, 0, arr3, arr1.Length, arr2.Length);
            foreach(var e in arr3)
            {
                Console.WriteLine(e);
            }
        }
    }
}

出力:

1
2
3
4
5
6

上記のコードでは、整数値 arr1arr2 の 2つの配列を初期化しました。arr1arr2 の結合された要素を保持するために、3 番目の配列 arr3 を宣言しました。arr3 配列の長さは、arr1 配列と arr2 配列の長さの合計です。次に、C# の Array.Copy() メソッドを使用して、arr1 および arr2 配列の内容を arr3 配列にコピーしました。

C# の Array.Resize() メソッドを使用して 2つの配列をマージする

前の例では、両方の配列のマージされた値を格納するために、別個の 3 番目の配列を作成する必要があります。別の配列を作成せずにこの目標を達成したい場合は、2つの配列のいずれかで Array.Resize() メソッドを使用する必要があります。Array.Resize() メソッドは、C# で 1 次元配列のサイズを変更するために使用されます。Array.Resize() メソッドは、配列への参照と目的のサイズを引数として取り、配列のサイズを変更します。次のコード例は、C# で Array.Resize() メソッドを使用して 2つの配列をマージする方法を示しています。

using System;

namespace merge_arrays
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr1 = { 1, 2, 3 };
            int[] arr2 = { 4, 5, 6 };
            int array1OriginalLength = arr1.Length;
            Array.Resize<int>(ref arr1, array1OriginalLength + arr2.Length);
            Array.Copy(arr2, 0, arr1, array1OriginalLength, arr2.Length);
            foreach (var e in arr1)
            {
                Console.WriteLine(e);
            }
        }
    }
}

出力:

1
2
3
4
5
6

整数値の 2つの配列 arr1arr2 を初期化しました。次に、Array.Resize() メソッドを使用して、arr1arr2 の両方の値を保持するように arr1 配列のサイズを変更しました。次に、C# の Array.Copy() メソッドを使用して、arr2 の要素を arr1 にコピーしました。

C# で LINQ メソッドを使用して 2つの配列をマージする

LINQ または統合言語クエリは、クエリ機能を C# のデータ構造に統合します。Concat() 関数を使用して、2つの配列の要素をマージできます。Concat(x) 関数は、C# の呼び出し元オブジェクトの最後にあるパラメーターx の要素を連結します。次に、ToArray() 関数を使用して結果を配列に変換できます。次のコード例は、C# で 2つの配列を LINQ メソッドでマージする方法を示しています。

using System;
using System.Linq;

namespace merge_arrays
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr1 = { 1, 2, 3 };
            int[] arr2 = { 4, 5, 6 };
            arr1 = arr1.Concat(arr2).ToArray();
            foreach (var e in arr1)
            {
                Console.WriteLine(e);
            }
        }
    }
}

出力:

1
2
3
4
5
6

整数値の 2つの配列 arr1arr2 を初期化しました。次に、arr1 配列の最後にある arr2 配列の要素を Array.Concat() メソッドで連結しました。次に、この操作の結果を C# の ToArray() 関数を使用して配列に変換しました。

関連記事 - Csharp Array

  • C# で配列の長さを取得する
  • C# で配列を並べ替える
  • C# で配列を降順で並べ替える
  • C# で文字列をバイト配列に変換する方法