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

定義

コピー元の List<T> 内の、ある範囲の要素の簡易コピーを作成します。

public System.Collections.Generic.List<T> GetRange (int index, int count);

パラメーター

index
Int32

範囲が開始する位置の、0 から始まる List<T> のインデックス番号。

count
Int32

範囲内の要素の数。

戻り値

コピー元の List<T> 内の、ある範囲の要素の簡易コピー。

例外

index が 0 未満です。

または

count が 0 未満です。

index および countList<T> において要素の有効な範囲を表していません。

次の例では、範囲に対して GetRange 動作する クラスの メソッドとその他の List<T> メソッドを示します。 この例の最後では、 メソッドを GetRange 使用して、インデックス位置 2 から始まる 3 つの項目をリストから取得します。 メソッドは ToArray 、結果として生成 List<T>された で呼び出され、3 つの要素の配列が作成されます。 配列の要素が表示されます。

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
 */

注釈

参照型のコレクションの浅いコピー、またはそのコレクションのサブセットには、コレクションの要素への参照のみが含まれます。 オブジェクト自体はコピーされません。 新しいリスト内の参照は、元のリスト内の参照と同じオブジェクトを指します。

値型のコレクションの浅いコピー、またはそのコレクションのサブセットには、コレクションの要素が含まれます。 ただし、コレクションの要素に他のオブジェクトへの参照が含まれている場合、それらのオブジェクトはコピーされません。 新しいコレクションの要素内の参照は、元のコレクションの要素内の参照と同じオブジェクトを指します。

これに対し、コレクションのディープ コピーでは、要素とその要素によって直接または間接的に参照されるすべてがコピーされます。

このメソッドは O(n) 操作で、 n は です 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

こちらもご覧ください