C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のList.AddRangeメソッドとは?使い方をサンプルコードで解説

C#のList.AddRangeメソッドとは

List<T>クラスのAddRangeメソッドは、配列や別のリストなど「コレクション全体」に含まれる要素を、既存のリストの末尾へ一括で追加するためのメソッドです。

個々の要素をAddメソッドで何度も呼び出して追加する方法と比べると、コードがシンプルになり、可読性も向上します。引数にはIEnumerable<T>型を受け取るため、配列だけでなく他のListやコレクションも指定可能です。

基本的な使い方

まず、C#でリストを作成し、要素をいくつか追加してみましょう。

List<int> list = new List<int>();
list.Add(100);
list.Add(200);
list.Add(300);
list.Add(400);

続いて、リストに追加したい要素を持つ配列を用意します。

// 4つの要素を持つ配列
int[] arr = new int[4];
arr[0] = 500;
arr[1] = 600;
arr[2] = 700;
arr[3] = 800;

AddRange()メソッドを呼び出すだけで、配列の全要素を一度にリストへ追加できます。

list.AddRange(arr);

サンプルコード(完全版)

ここまでの手順をまとめた完全なコードと、リストの中身を表示する処理を見てみましょう。

using System;
using System.Collections.Generic;

class Demo {
    static void Main() {
        List<int> list = new List<int>();
        list.Add(100);
        list.Add(200);
        list.Add(300);
        list.Add(400);

        // 4つの要素を持つ配列
        int[] arr = new int[4];
        arr[0] = 500;
        arr[1] = 600;
        arr[2] = 700;
        arr[3] = 800;
    
        list.AddRange(arr);

        foreach (int val in list) {
            Console.WriteLine(val);
        }
    }
}

実行結果

100
200
300
400
500
600
700
800

このように、元のリストの要素(100〜400)に続き、配列の要素(500〜800)が末尾に順番に追加されていることが確認できます。

まとめ

AddRangeメソッドを使うことで、複数の要素をまとめて効率よくリストへ追加できます。特に、配列や別のコレクションからデータを取り込む場面では、ループ処理を書く必要がなくなりコードが大幅に簡潔になるため、積極的に活用しましょう。

  1. Pythonに「同種リスト」という概念は存在するのか?公式ドキュメントから読み解くリストの本来の使い方

    結論から言うと、Pythonには「同種リスト(homogeneous list)」という特別なデータ型や概念は存在しません。公式ドキュメントにおける「同種データ」という表現Pythonの公式ドキュメントでは、リストについて次のように説明されています。リストはミュータブル(変更可能)なシーケンスであり、通常は同種の項目のコレクションを格納するために使用されます(類似性の正確な度合いはアプリケーションによって異なります)。この記述はあくまで「リストは同種のデータを格納するために典型的に使われる」という推奨・慣習を示したものであり、技術的な制約を意味するものではありません。つまり、Pythonの設計

  2. Pythonのリストとタプルの違いとは?特徴と使い分けのポイントを解説

    リストとタプルはどちらもシーケンス型 リスト(list)とタプル(tuple)は、どちらもPythonにおける「シーケンス型」に分類されるデータ型です。両者ともカンマで区切られた複数の要素を持ち、数値や文字列など異なる型のオブジェクトを混在させて格納することができます。 最大の違いは「可変か不変か」 リストとタプルの最も重要な違いは、リストが可変(mutable)であるのに対し、タプルは不変(immutable)であるという点です。 不変(イミュータブル)なオブジェクトは、一度メモリ上に作成されると内容を変更できません。そのため、タプルに対しては要素の追加・変更・削除が一切行えません。一方、