コレクションとデータ構造体
更新 : 2007 年 11 月
密接に関連するデータは、1 つのコレクションにグループ化すると、より効率的に処理できます。グループ化により、個々のオブジェクトを処理するために別々のコードを記述する代わりに、同じコードを使用して 1 つのコレクション内のすべての要素を処理できます。
コレクションを管理するには、Array クラスと System.Collections クラスを使用して、コレクション内の個々の要素または任意の範囲の要素を追加、削除、および変更します。また、コレクション全体を別のコレクションにコピーすることもできます。
一部の Collections クラスには並べ替え機能があり、ほとんどの Collections クラスはインデックス付けされます。メモリ管理は自動的に処理されるため、コレクションの容量も必要に応じて拡張されます。同期によって、コレクションのメンバへのスレッド セーフなアクセスも実現されます。一部の Collections クラスでは、コレクションを読み取り専用または固定サイズにするためのラッパーを作成できます。すべての Collections クラスは、その要素を簡単に反復処理できるように、独自の列挙子を作成できます。
.NET Framework version 2.0 では、ジェネリック コレクション クラスに新機能が用意され、厳密に型指定されたコレクションを簡単に作成できます。System.Collections.Generic 名前空間と System.Collections.ObjectModel 名前空間を参照してください。
LINQ to Objects 機能を使用すると、オブジェクト型が IEnumerable または IEnumerable<T> を実装している限り、LINQ クエリを使ってメモリ内オブジェクトにアクセスできます。LINQ クエリはデータ アクセス用の一般的なパターンです。通常、これは標準の foreach ループよりも簡潔で読みやすく、フィルタ処理、並べ替え、およびグループ化機能を備えています。さらに、LINQ クエリによってパフォーマンスを向上させることができます。詳細については、「LINQ to Objects」を参照してください。
このセクションの内容
コレクションの定義
コレクション型とは何かについて説明し、.NET Framework クラス ライブラリのジェネリック コレクション型と非ジェネリック コレクション型の違いについて説明します。一般的に使用されるコレクション型
Array、List<T>、Dictionary<TKey, TValue> などの一般的に使用されるジェネリックと非ジェネリック コレクション型について説明します。ビット コレクション
BitArray コレクション型と BitVector32 コレクション型について説明します。専用コレクション
NameValueCollection、StringDictionary、StringCollection などの特別な用途のコレクションについて説明します。コレクションの作成と操作
最適のコレクション型の選択、コレクションの列挙、複数のスレッドでのコレクションの使用、およびコレクションの並べ替えについて説明します。ジェネリック コレクションを使用する状況
ジェネリック コレクション型の使用について説明します。
参照
Array
配列の作成、操作、検索、および並べ替えに使用するメソッドを提供し、共通言語ランタイムのすべての配列の基本クラスになることができる Array クラスについて説明します。System.Collections
各種のオブジェクトのコレクションを定義するインターフェイスとクラスを含む System.Collections 名前空間のリファレンス ドキュメントを提供します。System.Collections.Generic
ジェネリック コレクションを定義するインターフェイスとクラスを含む System.Collections.Generic 名前空間のリファレンス ドキュメントを提供します。System.Collections.Specialized
厳密に型指定された専用コレクションを含む System.Collections.Specialized 名前空間のリファレンス ドキュメントを提供します。