次の方法で共有


.NET のジェネリック コレクション

.NET クラス ライブラリには、 System.Collections.Generic および System.Collections.ObjectModel 名前空間に多数のジェネリック コレクション クラスが用意されています。 これらのクラスの詳細については、「 一般的に使用されるコレクション型」を参照してください。

System.Collections.Generic

ジェネリック コレクション型の多くは、非ジェネリック型の直接の類似体です。 Dictionary<TKey,TValue>Hashtableのジェネリック バージョンです。KeyValuePair<TKey,TValue>の代わりに列挙型にDictionaryEntryジェネリック構造体を使用します。

List<T> は、 ArrayListの汎用バージョンです。 非ジェネリック バージョンに対応するジェネリック Queue<T> クラスと Stack<T> クラスがあります。

SortedList<TKey,TValue>にはジェネリック バージョンと非ジェネリック バージョンがあります。 どちらのバージョンも、ディクショナリとリストのハイブリッドです。 SortedDictionary<TKey,TValue>ジェネリック クラスは純粋なディクショナリであり、対応する非ジェネリッククラスはありません。

LinkedList<T>ジェネリック クラスは、真のリンク リストです。 対応する非ジェネリックはありません。

System.Collections.ObjectModel

Collection<T>ジェネリック クラスは、独自のジェネリック コレクション型を派生するための基本クラスを提供します。 ReadOnlyCollection<T> クラスを使用すると、IList<T>ジェネリック インターフェイスを実装する任意の型から読み取り専用コレクションを簡単に生成できます。 KeyedCollection<TKey,TItem>ジェネリック クラスは、独自のキーを含むオブジェクトを格納する方法を提供します。

その他のジェネリック型

Nullable<T>ジェネリック構造体を使用すると、値型をnull割り当てることができるかのように使用できます。 これは、値型を含むフィールドが見つからない可能性があるデータベース クエリを操作する場合に便利です。 ジェネリック型パラメーターには、任意の値型を指定できます。

C# と Visual Basic では、言語に null 許容型の構文があるため、 Nullable<T> を明示的に使用する必要はありません。 Null 許容値型 (C# リファレンス)Null 許容値型 (Visual Basic) を参照してください。

ArraySegment<T>ジェネリック構造体は、任意の型の 1 次元の 0 から始まる配列内の要素の範囲を区切る方法を提供します。 ジェネリック型パラメーターは、配列の要素の型です。

EventHandler<TEventArgs>ジェネリック デリゲートを使用すると、イベントが .NET で使用されるイベント処理パターンに従う場合に、イベントを処理するデリゲート型を宣言する必要がなくなります。 たとえば、イベントのデータを保持するために、MyEventArgsから派生したEventArgs クラスを作成したとします。 その後、次のようにイベントを宣言できます。

public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)

こちらも参照ください