C#のAddRange()メソッドを使って2つの配列をマージする方法
C#で2つの配列を1つに結合(マージ)したい場合、List<T>クラスのAddRange()メソッドを利用すると簡単に実現できます。本記事では、具体的な手順をサンプルコードと実行結果付きでわかりやすく解説します。
手順1:マージする2つの配列を用意する
まず、結合対象となる2つのint型配列を定義します。
int[] arr1 = { 15, 20, 27, 56 };
int[] arr2 = { 62, 69, 76, 92 };手順2:新しいリストを作成し、AddRange()で要素を追加する
次に、新しいList<int>を生成し、AddRange()メソッドを使って2つの配列の要素を順番に追加していきます。
var myList = new List<int>();
myList.AddRange(arr1);
myList.AddRange(arr2);
AddRange()は、引数に渡したコレクションの全要素をリストの末尾へ一括で追加できる便利なメソッドです。ループ処理を書く必要がなく、コードがすっきりします。
手順3:マージしたリストを配列に変換する
最後に、ToArray()メソッドを呼び出すことで、マージ済みのコレクションを再び配列として取得できます。
int[] arr3 = myList.ToArray();
完全なサンプルコード
ここまでの手順をまとめた完全なプログラムが以下です。
using System;
using System.Collections.Generic;
class Demo {
static void Main() {
int[] arr1 = { 15, 20, 27, 56 };
int[] arr2 = { 62, 69, 76, 92 };
// 配列1を表示
Console.WriteLine("Array 1...");
foreach(int ele in arr1) {
Console.WriteLine(ele);
}
// 配列2を表示
Console.WriteLine("Array 2...");
foreach(int ele in arr2) {
Console.WriteLine(ele);
}
// リストを作成して2つの配列をマージ
var myList = new List<int>();
myList.AddRange(arr1);
myList.AddRange(arr2);
// リストを配列に変換
int[] arr3 = myList.ToArray();
// マージ結果を表示
Console.WriteLine("Merged array..");
foreach (int res in arr3) {
Console.WriteLine(res);
}
}
}
実行結果
Array 1...
15
20
27
56
Array 2...
62
69
76
92
Merged array..
15
20
27
56
62
69
76
92
まとめ
このように、AddRange()メソッドとToArray()メソッドを組み合わせることで、2つの配列を簡単に1つにマージできます。配列同士を直接連結する標準メソッドはC#には存在しないため、List<T>を経由するこの手法は実務でも頻繁に使われる定番のパターンです。3つ以上の配列を結合したい場合も、同様にAddRange()を繰り返し呼び出すだけで対応可能です。
-
C#で2つの配列の共通要素(積集合)を取得する方法【Intersectメソッド】
C#で2つの配列の共通要素(交差・積集合)を取得するには、Intersectメソッドを使用します。このメソッドは、System.Linq名前空間に用意されている拡張メソッドで、LINQを使った配列操作の中でも特に便利な機能の一つです。 Intersectメソッドは、2つの配列を比較し、両方に存在する共通の要素だけを返します。重複する要素は自動的に除外され、結果は一意な値のコレクションとして取得できます。 配列の準備 まず、比較対象となる2つの整数型の配列を定義します。 int[] arr1 = { 44, 76, 98, 34 }; int[] arr2 = { 24, 98, 44, 55,
-
Pythonのheapqモジュールを使って2つのソート済みリストをマージする方法
この記事では、Pythonのheapqモジュールを使用して、2つのソート済みリストを1つにマージする方法を解説します。例えば、list1 = [10, 20, 30, 40]とlist2 = [100, 200, 300, 400, 500]という2つのリストがある場合、マージ後は[10, 20, 30, 40, 100, 200, 300, 400, 500]のような結果が得られます。heapqモジュールとはheapqはPythonに標準で搭載されているライブラリモジュールのため、追加のインストールは不要です。利用する前にインポートするだけで使えます。import heapqheapqモジュ