PR

 SortedListは,キーによって並べ替えられ,キーとインデックスを使ってアクセスできる配列である。キーと値のペアとして扱う。インデックスは0から始まる。

SortedListオブジェクトはリストの要素を格納するために,キーを格納する配列と,キーに関連づける値を格納する配列の,合計2つの配列を内部に保持する。SortedListオブジェクトの各要素はキーと値のペアであり,DictionaryEntryオブジェクトとしてアクセスできる。キーにnull参照は使用できず,重複できない。値にはnull参照を格納できる。

 SortedListオブジェクトの容量は,SortedListオブジェクトが保持可能な要素数である。SortedListオブジェクトのデフォルトの初期容量は0である。SortedListオブジェクトに要素を追加すると,必要に応じて容量が自動的に増加する。要素を削除しても容量は減らない。容量を減らすには,TrimToSizeメソッドを呼び出すか,Capacityプロパティを明示的に設定する。

 要素を追加すると,その要素は並べ替えられた後にSortedListオブジェクトに挿入される。それに応じてインデックスも調整される。要素が削除されると,それに応じてインデックスも調整される。つまり,特定のキーと値のペアのインデックスは,SortedListオブジェクトに要素が追加されたり,削除されたりすると,変わることがある。

サンプルコードを見る


名前空間
System.Collections
対応バージョン
.NET Framework 2.0,1.1,1.0
.NET Compact Framework 2.0
主なプロパティ
Capacity
SortedListオブジェクトに格納できる要素の数(容量)を取得または設定する。

Count
SortedListオブジェクトに実際に格納されている要素の数を取得する。

IsFixedSize
SortedListオブジェクトが固定サイズかどうかを示す値を取得する。固定サイズの場合はTrue,それ以外の場合はFalseを返す。デフォルトはFalseである。

IsReadOnly
SortedListオブジェクトが読み取り専用かどうかを示す値を取得する。読み取り専用の場合はTrue,それ以外の場合はFalseを返す。デフォルトはFalseである。

IsSynchronized
SortedListオブジェクトへのアクセスが同期されている(スレッド・セーフである)かどうかを示す値を取得する。アクセスが同期されている(スレッド・セーフである)場合はTrue,それ以外の場合はFalseを返す。デフォルトはFalseである。SortedListオブジェクトを確実にスレッド・セーフにするためには,すべての操作をSynchronizedメソッドから返されるラッパー経由で実行する必要がある。

Item
指定したインデックスにある要素を取得または設定する。C#言語ではインデクサとして働き,[ ]にキーを指定することで,それが関連づけられている値を取得できる。キーにnull参照を指定すると,ArgumentNullException例外が発生する。また,キーに指定した値がSortedListオブジェクト内に見つからなかった場合は,null参照が返る。

Keys
SortedListオブジェクト内のキーを取得する。

Values
SortedListオブジェクト内の値を取得する。

主なメソッド
Add
第1引数に指定したキー,および第2引数に指定した値のペアを要素として,SortedListオブジェクトに追加する。その際,SortedListオブジェクトが作成されたときに明示的に選択された比較演算子か,デフォルトの比較演算子に基づいてソートされた後,追加される。SortedListオブジェクトの要素数が既に容量と等しい場合は,自動的にSortedListオブジェクトの容量が増加する。キーがnull参照の場合はArgumentNullException例外が発生する。指定したキーが既にSortedListオブジェクトに存在する場合は,ArgumentException例外が発生する。

Clear
SortedListオブジェクトからすべての要素を削除する。これにより要素数は0になるが,容量は変化しない。SortedListオブジェクトの容量を削減するには,TrimToSizeメソッドを呼び出すか,Capacityプロパティを直接設定する。要素数が0のSortedListオブジェクトに対してTrimToSizeメソッドを実行すると,SortedListオブジェクトの容量は既定値に設定される。

Clone
SortedListオブジェクトの簡易コピーを作成する。簡易コピーによってコピーされるのはSortedListオブジェクトの要素だけである。SortedListオブジェクトの各要素が参照しているオブジェクトはコピーされない。つまり,コピーされた新しいSortedListオブジェクトの要素の参照先は,元のSortedListオブジェクトの要素の参照先と同じオブジェクトになる。

Contains
指定したオブジェクトがSortedListオブジェクト内のキーに存在するかどうかを調べる。引数に指定したオブジェクトがSortedListオブジェクト内のキーに存在する場合はTrue,それ以外の場合はFalseを返す。

ContainsKey
Containsメソッドと全く同じ動作をする。すなわち,指定したオブジェクトがSortedListオブジェクト内のキーに存在するかどうかを調べる。引数に指定したオブジェクトがSortedListオブジェクト内のキーに存在する場合はTrue,それ以外の場合はFalseを返す。

ContainsValue
指定したオブジェクトがSortedListオブジェクト内の値に存在するかどうかを調べる。引数に指定したオブジェクトがSortedListオブジェクト内の値に存在する場合はTrue,それ以外の場合はFalseを返す。

CopyTo
SortedListオブジェクトのすべての要素,または一部の要素を,1次元配列にコピーする。その際,キーと値を交互に格納する。SortedListオブジェクト内のキーだけをコピーするには,SortedList.Keys.CopyToメソッドを使用する。SortedListオブジェクト内の値だけをコピーするには,SortedList.Values.CopyToメソッドを使用する。

GetByIndex
SortedListオブジェクトの指定したインデックスにある値を取得する。

GetKey
SortedListオブジェクトの指定したインデックスにあるキーを取得する。

GetKeyList
SortedListオブジェクト内のキーの配列を取得する。

GetValueList
SortedListオブジェクト内の値の配列を取得する。

IndexOfKey
引数に指定したキーに対して,SortedListオブジェクト内の,0 から始まるインデックス番号を返す。

IndexOfValue
SortedListオブジェクト内の値の中で,引数に指定したオブジェクトが,最初に出現するインデックス番号を返す。インデックス番号は0から始まる。見つからなかった場合は-1を返す。

Remove
指定したキーを持つ要素をSortedListオブジェクトから削除する。

RemoveAt
SortedListオブジェクトの,指定したインデックスにある要素を削除する。

SetByIndex
SortedListオブジェクトの特定のインデックスにある値を置換する。

TrimToSize
容量をSortedListオブジェクト内にある実際の要素数に設定する。Removeメソッドなどを呼び出してSortedListオブジェクト内の要素を削除しても,そのままではSortedListオブジェクトの容量は変わらない。容量を削減するときには,TrimToSizeメソッドを呼び出す。