ReadOnlyCollection<T>.Item[Int32] プロパティ

定義

指定したインデックス位置にある要素を取得します。

C#
public T this[int index] { get; }

パラメーター

index
Int32

取得する要素の 0 から始まるインデックス。

プロパティ値

T

指定したインデックス位置にある要素。

実装

例外

index が 0 未満です。

または

indexCount 以上になっています。

次のコード例では、 クラスのいくつかのメンバーを ReadOnlyCollection<T> 示します。 このコード例では、文字列の を List<T> 作成し、それに 4 つの恐竜名を追加します。 次に、このコード例では、 でリストを ReadOnlyCollection<T>ラップします。

、、、および IList.IndexOf のメンバーをCount示した後、コード例では、 が に新しい項目を追加し、 の内容を表示することで、元List<T>ReadOnlyCollection<T>List<T>ラッパーであることを示ReadOnlyCollection<T>しています。 Item[]Contains

最後に、このコード例では、コレクションより大きい配列を作成し、 メソッドを CopyTo 使用してコレクションの要素を配列の中央に挿入します。

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

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Compsognathus");

        ReadOnlyCollection<string> readOnlyDinosaurs =
            new ReadOnlyCollection<string>(dinosaurs);

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

        Console.WriteLine("\nCount: {0}", readOnlyDinosaurs.Count);

        Console.WriteLine("\nContains(\"Deinonychus\"): {0}",
            readOnlyDinosaurs.Contains("Deinonychus"));

        Console.WriteLine("\nreadOnlyDinosaurs[3]: {0}",
            readOnlyDinosaurs[3]);

        Console.WriteLine("\nIndexOf(\"Compsognathus\"): {0}",
            readOnlyDinosaurs.IndexOf("Compsognathus"));

        Console.WriteLine("\nInsert into the wrapped List:");
        Console.WriteLine("Insert(2, \"Oviraptor\")");
        dinosaurs.Insert(2, "Oviraptor");

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

        string[] dinoArray = new string[readOnlyDinosaurs.Count + 2];
        readOnlyDinosaurs.CopyTo(dinoArray, 1);

        Console.WriteLine("\nCopied array has {0} elements:",
            dinoArray.Length);
        foreach( string dinosaur in dinoArray )
        {
            Console.WriteLine("\"{0}\"", dinosaur);
        }
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Deinonychus
Compsognathus

Count: 4

Contains("Deinonychus"): True

readOnlyDinosaurs[3]: Compsognathus

IndexOf("Compsognathus"): 3

Insert into the wrapped List:
Insert(2, "Oviraptor")

Tyrannosaurus
Amargasaurus
Oviraptor
Deinonychus
Compsognathus

Copied array has 7 elements:
""
"Tyrannosaurus"
"Amargasaurus"
"Oviraptor"
"Deinonychus"
"Compsognathus"
""
 */

注釈

このプロパティは、次の C# 構文を使用してコレクション内の特定の要素にアクセスする機能を提供します: myCollection[index] (myCollection(index) Visual Basic の場合)。

C# 言語では、このキーワード (keyword)を使用して、 プロパティを実装する代わりにインデクサーをItem[]定義します。 Visual Basic は、Item[] を既定のプロパティとして実装しており、同様のインデックス機能を提供します。

このプロパティ値を取得することは、O(1) 操作になります。

適用対象

製品 バージョン
.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.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください