コレクションとデータ構造体

密接に関連するデータは、1 つのコレクションにグループ化すると、より効率的に処理できます。 グループ化により、個々のオブジェクトを処理するために別々のコードを記述する代わりに、同じコードを使用して 1 つのコレクション内のすべての要素を処理できます。

コレクションを管理するには、System.Array クラスと System.CollectionsSystem.Collections.Generic、および System.Collections.Concurrent の各名前空間のクラスを使用して、コレクション内の個々の要素または任意の範囲の要素を追加、削除、および変更します。 また、コレクション全体を別のコレクションにコピーすることもできます。

一部の System.Collections クラスには並べ替え機能があり、このクラスのほとんどはインデックス付けされます。 メモリ管理は自動的に処理されるため、コレクションの容量も必要に応じて拡張されます。 同期によって、コレクションのメンバーへのスレッド セーフなアクセスも実現されます。 一部の System.Collections クラスでは、コレクションを読み取り専用または固定サイズにするためのラッパーを作成できます。 すべての System.Collections クラスは独自の列挙子を生成できるため、複数の要素で簡単に反復処理を実行できます。

.NET Framework Version 2.0 では、ジェネリック コレクション クラスに新機能が用意され、厳密に型指定されたコレクションを簡単に作成できます。 System.Collections.Generic 名前空間と System.Collections.ObjectModel 名前空間を参照してください。

.NET Framework Version 4 では、System.Collections.Concurrent 名前空間のコレクションによって、複数のスレッドからコレクション項目にアクセスするための効率的なスレッド セーフ操作が可能になります。

LINQ to Objects 機能では、オブジェクト型が System.Collections.IEnumerable インターフェイスまたは System.Collections.Generic.IEnumerable<T> インターフェイスを実装している限り、LINQ クエリを使用してメモリ内オブジェクトにアクセスできます。 LINQ クエリはデータ アクセス用の一般的なパターンです。通常、これは標準の foreach ループよりも簡潔で読みやすく、フィルター処理、並べ替え、およびグループ化機能を備えています。 さらに、LINQ クエリによってパフォーマンスを向上させることができます。 詳細については、「LINQ to Objects」および「Parallel LINQ (PLINQ)」を参照してください。

関連トピック

タイトル

説明

コレクションの定義

コレクション型とは何かについて説明し、.NET Framework クラス ライブラリのジェネリック コレクション型と非ジェネリック コレクション型の違いについて説明します。

一般的に使用されるコレクション型

System.ArraySystem.Collections.Generic.List<T>System.Collections.Generic.Dictionary<TKey, TValue> などの一般的に使用されるジェネリックと非ジェネリック コレクション型について説明します。

ビット コレクション

System.Collections.BitArray コレクション型と System.Collections.Specialized.BitVector32 コレクション型について説明します。

専用コレクション

System.Collections.Specialized.NameValueCollectionSystem.Collections.Specialized.StringDictionarySystem.Collections.Specialized.StringCollection などの特別な用途のコレクションについて説明します。

スレッド セーフなコレクション

複数のスレッドからの安全で効率的な同時アクセスをサポートする System.Collections.Concurrent.BlockingCollection<T>System.Collections.Concurrent.ConcurrentBag<T> などのコレクション型について説明します。

コレクションの作成と操作

最適なコレクション型の選択方法、コレクションの列挙方法、複数のスレッドでのコレクションの使用方法、およびコレクションの並べ替え方法について説明します。

ジェネリック コレクションを使用する状況

ジェネリック コレクション型の使用について説明します。

参照

System.Array

System.Collections

System.Collections.Concurrent

System.Collections.Generic

System.Collections.Specialized

System.Linq