List<T>.InsertRange(Int32, IEnumerable<T>) メソッド

定義

コレクションの要素を List<T> 内の指定したインデックスの位置に挿入します。

C#
public void InsertRange (int index, System.Collections.Generic.IEnumerable<T> collection);

パラメーター

index
Int32

新しい要素が挿入される位置の 0 から始まるインデックス。

collection
IEnumerable<T>

List<T> に要素を挿入するコレクション。 コレクション自体を null にすることはできませんが、型 T が参照型の場合、コレクションに格納する要素は null であってもかまいません。

例外

collectionnullです。

index が 0 未満です。

または

indexCount より大きくなっています。

次の例では、範囲に InsertRange 対して動作する クラスの List<T> メソッドとその他のさまざまなメソッドを示します。 リストが作成され、いくつかの平和な植物を食べる恐竜の名前が設定された後、この InsertRange メソッドは、インデックス位置 3 から始まる 3 つの猛烈な肉食恐竜の配列をリストに挿入するために使用されます。

C#
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        string[] input = { "Brachiosaurus",
                           "Amargasaurus",
                           "Mamenchisaurus" };

        List<string> dinosaurs = new List<string>(input);

        Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nAddRange(dinosaurs)");
        dinosaurs.AddRange(dinosaurs);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nRemoveRange(2, 2)");
        dinosaurs.RemoveRange(2, 2);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        input = new string[] { "Tyrannosaurus",
                               "Deinonychus",
                               "Velociraptor"};

        Console.WriteLine("\nInsertRange(3, input)");
        dinosaurs.InsertRange(3, input);

        Console.WriteLine();
        foreach( string dinosaur in dinosaurs )
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\noutput = dinosaurs.GetRange(2, 3).ToArray()");
        string[] output = dinosaurs.GetRange(2, 3).ToArray();

        Console.WriteLine();
        foreach( string dinosaur in output )
        {
            Console.WriteLine(dinosaur);
        }
    }
}

/* This code example produces the following output:

Capacity: 3

Brachiosaurus
Amargasaurus
Mamenchisaurus

AddRange(dinosaurs)

Brachiosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Amargasaurus
Mamenchisaurus

RemoveRange(2, 2)

Brachiosaurus
Amargasaurus
Amargasaurus
Mamenchisaurus

InsertRange(3, input)

Brachiosaurus
Amargasaurus
Amargasaurus
Tyrannosaurus
Deinonychus
Velociraptor
Mamenchisaurus

output = dinosaurs.GetRange(2, 3).ToArray()

Amargasaurus
Tyrannosaurus
Deinonychus
 */

注釈

List<T> は参照 null 型の有効な値として受け入れ、重複する要素を許可します。

新しい Count (現在 Count のとコレクションのサイズ) が より Capacity大きい場合、 の List<T> 容量は、新しい要素に合わせて内部配列を自動的に再割り当てすることで増加し、新しい要素が追加される前に既存の要素が新しい配列にコピーされます。

が とCount等しい場合index、要素は のList<T>末尾に追加されます。

コレクション内の要素の順序は、 で List<T>保持されます。

このメソッドは O(n * m) 演算です。 ここで、n は追加する要素の数、 m は です Count

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください