ListDictionary クラス
アセンブリ: System (system.dll 内)

<SerializableAttribute> _ Public Class ListDictionary Implements IDictionary, ICollection, IEnumerable

これは、シングルリンク リストを使用した IDictionary の単純な実装です。要素数が 10 以下の場合は、この実装の方が Hashtable よりもサイズが小さく、処理が高速になります。多くの要素にとってパフォーマンスが重要である場合、この実装は使用しないでください。
ListDictionary 内の項目には保証された順序はありません。つまり、コードは現在の順序に依存しません。ListDictionary はキーによる高速な検索のために実装されます。項目の実際の内部的な順序は実装に依存し、製品の将来のバージョンで変更される可能性があります。
Item、Add、Remove、Contains などのメンバは、n が Count である O(n) 操作です。
キーには null 参照 (Visual Basic では Nothing) は使用できませんが、値には使用できます。
C# 言語の foreach ステートメント (Visual Basic では for each) は、コレクション内の各要素の型を必要とします。ListDictionary の各要素はキー/値ペアであるため、要素の型は、キーの型や値の型にはなりません。その代わり、要素の型は DictionaryEntry になります。例 :
foreach (DictionaryEntry de in myListDictionary) {...}
For Each de As DictionaryEntry In myListDictionary ... Next de
foreach ステートメントは、列挙子のラッパーです。これは、コレクションからの読み取りだけを許可し、コレクションへの書き込みを防ぎます。

ListDictionary のプロパティとメソッドのいくつかの例を次に示します。
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class SamplesListDictionary Public Shared Sub Main() ' Creates and initializes a new ListDictionary. Dim myCol As New ListDictionary() myCol.Add("Braeburn Apples", "1.49") myCol.Add("Fuji Apples", "1.29") myCol.Add("Gala Apples", "1.49") myCol.Add("Golden Delicious Apples", "1.29") myCol.Add("Granny Smith Apples", "0.89") myCol.Add("Red Delicious Apples", "0.99") ' Display the contents of the collection using For Each. This is the preferred method. Console.WriteLine("Displays the elements using For Each:") PrintKeysAndValues(myCol) ' Display the contents of the collection using the enumerator. Console.WriteLine("Displays the elements using the IDictionaryEnumerator:") PrintKeysAndValues2(myCol) ' Display the contents of the collection using the Keys, Values, Count, and Item properties. Console.WriteLine("Displays the elements using the Keys, Values, Count, and Item properties:") PrintKeysAndValues3(myCol) ' Copies the ListDictionary to an array with DictionaryEntry elements. Dim myArr(myCol.Count) As DictionaryEntry myCol.CopyTo(myArr, 0) ' Displays the values in the array. Console.WriteLine("Displays the elements in the array:") Console.WriteLine(" KEY VALUE") Dim i As Integer For i = 0 To myArr.Length - 1 Console.WriteLine(" {0,-25} {1}", myArr(i).Key, myArr(i).Value) Next i Console.WriteLine() ' Searches for a key. If myCol.Contains("Kiwis") Then Console.WriteLine("The collection contains the key ""Kiwis"".") Else Console.WriteLine("The collection does not contain the key ""Kiwis"".") End If Console.WriteLine() ' Deletes a key. myCol.Remove("Plums") Console.WriteLine("The collection contains the following elements after removing ""Plums"":") PrintKeysAndValues(myCol) ' Clears the entire collection. myCol.Clear() Console.WriteLine("The collection contains the following elements after it is cleared:") PrintKeysAndValues(myCol) End Sub 'Main ' Uses the For Each statement which hides the complexity of the enumerator. ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection. Public Shared Sub PrintKeysAndValues(myCol As IDictionary) Console.WriteLine(" KEY VALUE") Dim de As DictionaryEntry For Each de In myCol Console.WriteLine(" {0,-25} {1}", de.Key, de.Value) Next de Console.WriteLine() End Sub 'PrintKeysAndValues ' Uses the enumerator. ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection. Public Shared Sub PrintKeysAndValues2(myCol As IDictionary) Dim myEnumerator As IDictionaryEnumerator = myCol.GetEnumerator() Console.WriteLine(" KEY VALUE") While myEnumerator.MoveNext() Console.WriteLine(" {0,-25} {1}", myEnumerator.Key, myEnumerator.Value) End While Console.WriteLine() End Sub 'PrintKeysAndValues2 ' Uses the Keys, Values, Count, and Item properties. Public Shared Sub PrintKeysAndValues3(myCol As ListDictionary) Dim myKeys(myCol.Count) As [String] myCol.Keys.CopyTo(myKeys, 0) Console.WriteLine(" INDEX KEY VALUE") Dim i As Integer For i = 0 To myCol.Count - 1 Console.WriteLine(" {0,-5} {1,-25} {2}", i, myKeys(i), myCol(myKeys(i))) Next i Console.WriteLine() End Sub 'PrintKeysAndValues3 End Class 'SamplesListDictionary 'This code produces the following output. 'Note that because a dictionary is implemented for fast keyed access the order 'of the items in the dictionary are not gauranteed and, as a result, should not 'be depended on. ' 'Displays the elements using for each: ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'Displays the elements using the IDictionaryEnumerator: ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'Displays the elements using the Keys, Values, Count, and Item properties: ' INDEX KEY VALUE ' 0 Braeburn Apples 1.49 ' 1 Fuji Apples 1.29 ' 2 Gala Apples 1.49 ' 3 Golden Delicious Apples 1.29 ' 4 Granny Smith Apples 0.89 ' 5 Red Delicious Apples 0.99 ' 'Displays the elements in the array: ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'The collection does not contain the key "Kiwis". ' 'The collection contains the following elements after removing "Plums": ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'The collection contains the following elements after it is cleared: ' KEY VALUE '
using System; using System.Collections; using System.Collections.Specialized; public class SamplesListDictionary { public static void Main() { // Creates and initializes a new ListDictionary. ListDictionary myCol = new ListDictionary(); myCol.Add( "Braeburn Apples", "1.49" ); myCol.Add( "Fuji Apples", "1.29" ); myCol.Add( "Gala Apples", "1.49" ); myCol.Add( "Golden Delicious Apples", "1.29" ); myCol.Add( "Granny Smith Apples", "0.89" ); myCol.Add( "Red Delicious Apples", "0.99" ); // Display the contents of the collection using foreach. This is the preferred method. Console.WriteLine( "Displays the elements using foreach:" ); PrintKeysAndValues1( myCol ); // Display the contents of the collection using the enumerator. Console.WriteLine( "Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); // Display the contents of the collection using the Keys, Values, Count, and Item properties. Console.WriteLine( "Displays the elements using the Keys, Values, Count, and Item properties:" ); PrintKeysAndValues3( myCol ); // Copies the ListDictionary to an array with DictionaryEntry elements. DictionaryEntry[] myArr = new DictionaryEntry[myCol.Count]; myCol.CopyTo( myArr, 0 ); // Displays the values in the array. Console.WriteLine( "Displays the elements in the array:" ); Console.WriteLine( " KEY VALUE" ); for ( int i = 0; i < myArr.Length; i++ ) Console.WriteLine( " {0,-25} {1}", myArr[i].Key, myArr[i].Value ); Console.WriteLine(); // Searches for a key. if ( myCol.Contains( "Kiwis" ) ) Console.WriteLine( "The collection contains the key \"Kiwis\"." ); else Console.WriteLine( "The collection does not contain the key \"Kiwis\"." ); Console.WriteLine(); // Deletes a key. myCol.Remove( "Plums" ); Console.WriteLine( "The collection contains the following elements after removing \"Plums\":" ); PrintKeysAndValues1( myCol ); // Clears the entire collection. myCol.Clear(); Console.WriteLine( "The collection contains the following elements after it is cleared:" ); PrintKeysAndValues1( myCol ); } // Uses the foreach statement which hides the complexity of the enumerator. // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection. public static void PrintKeysAndValues1( IDictionary myCol ) { Console.WriteLine( " KEY VALUE" ); foreach ( DictionaryEntry de in myCol ) Console.WriteLine( " {0,-25} {1}", de.Key, de.Value ); Console.WriteLine(); } // Uses the enumerator. // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection. public static void PrintKeysAndValues2( IDictionary myCol ) { IDictionaryEnumerator myEnumerator = myCol.GetEnumerator(); Console.WriteLine( " KEY VALUE" ); while ( myEnumerator.MoveNext() ) Console.WriteLine( " {0,-25} {1}", myEnumerator.Key, myEnumerator.Value ); Console.WriteLine(); } // Uses the Keys, Values, Count, and Item properties. public static void PrintKeysAndValues3( ListDictionary myCol ) { String[] myKeys = new String[myCol.Count]; myCol.Keys.CopyTo( myKeys, 0 ); Console.WriteLine( " INDEX KEY VALUE" ); for ( int i = 0; i < myCol.Count; i++ ) Console.WriteLine( " {0,-5} {1,-25} {2}", i, myKeys[i], myCol[myKeys[i]] ); Console.WriteLine(); } } /* This code produces output similar to the following. Note that because a dictionary is implemented for fast keyed access the order of the items in the dictionary are not gauranteed and, as a result, should not be depended on. Displays the elements using foreach: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Braeburn Apples 1.49 1 Fuji Apples 1.29 2 Gala Apples 1.49 3 Golden Delicious Apples 1.29 4 Granny Smith Apples 0.89 5 Red Delicious Apples 0.99 Displays the elements in the array: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection contains the following elements after it is cleared: KEY VALUE */
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; void PrintKeysAndValues1( IDictionary^ myCol ); void PrintKeysAndValues2( IDictionary^ myCol ); void PrintKeysAndValues3( ListDictionary^ myCol ); int main() { // Creates and initializes a new ListDictionary. ListDictionary^ myCol = gcnew ListDictionary; myCol->Add( "Braeburn Apples", "1.49" ); myCol->Add( "Fuji Apples", "1.29" ); myCol->Add( "Gala Apples", "1.49" ); myCol->Add( "Golden Delicious Apples", "1.29" ); myCol->Add( "Granny Smith Apples", "0.89" ); myCol->Add( "Red Delicious Apples", "0.99" ); // Display the contents of the collection using for each. This is the preferred method. Console::WriteLine( "Displays the elements using for each:" ); PrintKeysAndValues1( myCol ); // Display the contents of the collection using the enumerator. Console::WriteLine( "Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); // Display the contents of the collection using the Keys, Values, Count, and Item properties. Console::WriteLine( "Displays the elements using the Keys, Values, Count, and Item properties:" ); PrintKeysAndValues3( myCol ); // Copies the ListDictionary to an array with DictionaryEntry elements. array<DictionaryEntry>^myArr = gcnew array<DictionaryEntry>(myCol->Count); myCol->CopyTo( myArr, 0 ); // Displays the values in the array. Console::WriteLine( "Displays the elements in the array:" ); Console::WriteLine( " KEY VALUE" ); for ( int i = 0; i < myArr->Length; i++ ) Console::WriteLine( " {0,-25} {1}", myArr[ i ].Key, myArr[ i ].Value ); Console::WriteLine(); // Searches for a key. if ( myCol->Contains( "Kiwis" ) ) Console::WriteLine( "The collection contains the key \"Kiwis\"." ); else Console::WriteLine( "The collection does not contain the key \"Kiwis\"." ); Console::WriteLine(); // Deletes a key. myCol->Remove( "Plums" ); Console::WriteLine( "The collection contains the following elements after removing \"Plums\":" ); PrintKeysAndValues2( myCol ); // Clears the entire collection. myCol->Clear(); Console::WriteLine( "The collection contains the following elements after it is cleared:" ); PrintKeysAndValues2( myCol ); } // Uses the for each statement which hides the complexity of the enumerator. // NOTE: The for each statement is the preferred way of enumerating the contents of a collection. void PrintKeysAndValues1( IDictionary^ myCol ) { Console::WriteLine( " KEY VALUE" ); for each ( DictionaryEntry^ de in myCol ) Console::WriteLine( " {0,-25} {1}", de->Key, de->Value ); Console::WriteLine(); } // Uses the enumerator. void PrintKeysAndValues2( IDictionary^ myCol ) { IDictionaryEnumerator^ myEnumerator = myCol->GetEnumerator(); Console::WriteLine( " KEY VALUE" ); while ( myEnumerator->MoveNext() ) Console::WriteLine( " {0,-25} {1}", myEnumerator->Key, myEnumerator->Value ); Console::WriteLine(); } // Uses the Keys, Values, Count, and Item properties. void PrintKeysAndValues3( ListDictionary^ myCol ) { array<String^>^myKeys = gcnew array<String^>(myCol->Count); myCol->Keys->CopyTo( myKeys, 0 ); Console::WriteLine( " INDEX KEY VALUE" ); for ( int i = 0; i < myCol->Count; i++ ) Console::WriteLine( " {0,-5} {1,-25} {2}", i, myKeys[ i ], myCol[ myKeys[ i ] ] ); Console::WriteLine(); } /* This code produces the following output. Displays the elements using for each: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Braeburn Apples 1.49 1 Fuji Apples 1.29 2 Gala Apples 1.49 3 Golden Delicious Apples 1.29 4 Granny Smith Apples 0.89 5 Red Delicious Apples 0.99 Displays the elements in the array: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection contains the following elements after it is cleared: KEY VALUE */
import System.*; import System.Collections.*; import System.Collections.Specialized.*; public class SamplesListDictionary { public static void main(String[] args) { // Creates and initializes a new ListDictionary. ListDictionary myCol = new ListDictionary(); myCol.Add("Braeburn Apples", "1.49"); myCol.Add("Fuji Apples", "1.29"); myCol.Add("Gala Apples", "1.49"); myCol.Add("Golden Delicious Apples", "1.29"); myCol.Add("Granny Smith Apples", "0.89"); myCol.Add("Red Delicious Apples", "0.99"); // Display the contents of the collection using for. This is the // preferred method. Console.WriteLine("Displays the elements using for:"); PrintKeysAndValues1(myCol); // Display the contents of the collection using the enumerator. Console.WriteLine("Displays the elements using the" + " IDictionaryEnumerator:"); PrintKeysAndValues2(myCol); // Display the contents of the collection using the Keys, Values , // Count, and Item properties. Console.WriteLine("Displays the elements using the Keys, Values," + " Count, and Item properties:"); PrintKeysAndValues3(myCol); // Copies the ListDictionary to an array with DictionaryEntry elements. DictionaryEntry myArr[] = new DictionaryEntry[myCol.get_Count()]; myCol.CopyTo(myArr, 0); // Displays the values in the array. Console.WriteLine("Displays the elements in the array:"); Console.WriteLine(" KEY VALUE"); for(int i = 0; i < myArr.length; i++) { Console.WriteLine(" {0,-25} {1}", myArr[i].get_Key(), myArr[i].get_Value()); } Console.WriteLine(); // Searches for a key. if (myCol.Contains("Kiwis")) { Console.WriteLine("The collection contains the key \"Kiwis\"."); } else { Console.WriteLine("The collection does not contain the key" + " \"Kiwis\"."); } Console.WriteLine(); // Deletes a key. myCol.Remove("Plums"); Console.WriteLine("The collection contains the following elements" + " after removing \"Plums\":"); PrintKeysAndValues1(myCol); // Clears the entire collection. myCol.Clear(); Console.WriteLine("The collection contains the following elements" + " after it is cleared:"); PrintKeysAndValues1(myCol); } //main // Uses the for statement which hides the complexity of the enumerator. // NOTE: The for statement is the preferred way of enumerating the // contents of a collection. public static void PrintKeysAndValues1(IDictionary myCol) { String strKeys[] = new String[myCol.get_Count()]; myCol.get_Keys().CopyTo(strKeys,0); Console.WriteLine(" KEY VALUE"); for (int iCtr = 0; iCtr < myCol.get_Count(); iCtr++) { Console.WriteLine(" {0,-25} {1}", strKeys[iCtr], myCol.get_Item(strKeys[iCtr])); } Console.WriteLine(); } //PrintKeysAndValues1 // Uses the enumerator. // NOTE: The for statement is the preferred way of enumerating the // contents of a collection. public static void PrintKeysAndValues2(IDictionary myCol) { IDictionaryEnumerator myEnumerator = myCol.GetEnumerator(); Console.WriteLine(" KEY VALUE"); while(myEnumerator.MoveNext()) { Console.WriteLine(" {0,-25} {1}", myEnumerator.get_Key() , myEnumerator.get_Value()); } Console.WriteLine(); } //PrintKeysAndValues2 // Uses the Keys, Values, Count, and Item properties. public static void PrintKeysAndValues3(ListDictionary myCol) { String myKeys[] = new String[myCol.get_Count()]; myCol.get_Keys().CopyTo(myKeys, 0); Console.WriteLine(" INDEX KEY VALUE"); for(int i=0; i < myCol.get_Count(); i++) { System.Console.WriteLine(" {0,-5} {1,-25} {2}",(Int32)i, myKeys[i],myCol.get_Item(myKeys[i])); } Console.WriteLine(); } //PrintKeysAndValues3 } //SamplesListDictionary /* Displays the elements using for: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Braeburn Apples 1.49 1 Fuji Apples 1.29 2 Gala Apples 1.49 3 Golden Delicious Apples 1.29 4 Granny Smith Apples 0.89 5 Red Delicious Apples 0.99 Displays the elements in the array: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection contains the following elements after it is cleared: KEY VALUE */

System.Collections.Specialized.ListDictionary

この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。すべてのインスタンス メンバがスレッド セーフになるかどうかは保証されていません。
この実装は、ListDictionary 用の同期された (スレッド セーフな) ラッパーは提供しませんが、派生クラスでは、SyncRoot プロパティを使用して、同期した ListDictionary を独自に作成できます。
コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。コレクションが同期されている場合でも、他のスレッドがそのコレクションを変更する可能性はあり、そのような状況が発生すると列挙子は例外をスローします。列挙処理を確実にスレッド セーフに行うには、列挙中にコレクションをロックするか、他のスレッドによって行われた変更によってスローされる例外をキャッチします。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ListDictionary コンストラクタ ()
アセンブリ: System (system.dll 内)



ListDictionary のプロパティとメソッドのいくつかの例を次に示します。
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class SamplesListDictionary Public Shared Sub Main() ' Creates and initializes a new ListDictionary. Dim myCol As New ListDictionary() myCol.Add("Braeburn Apples", "1.49") myCol.Add("Fuji Apples", "1.29") myCol.Add("Gala Apples", "1.49") myCol.Add("Golden Delicious Apples", "1.29") myCol.Add("Granny Smith Apples", "0.89") myCol.Add("Red Delicious Apples", "0.99") ' Display the contents of the collection using For Each. This is the preferred method. Console.WriteLine("Displays the elements using For Each:") PrintKeysAndValues(myCol) ' Display the contents of the collection using the enumerator. Console.WriteLine("Displays the elements using the IDictionaryEnumerator:") PrintKeysAndValues2(myCol) ' Display the contents of the collection using the Keys, Values, Count, and Item properties. Console.WriteLine("Displays the elements using the Keys, Values, Count, and Item properties:") PrintKeysAndValues3(myCol) ' Copies the ListDictionary to an array with DictionaryEntry elements. Dim myArr(myCol.Count) As DictionaryEntry myCol.CopyTo(myArr, 0) ' Displays the values in the array. Console.WriteLine("Displays the elements in the array:") Console.WriteLine(" KEY VALUE") Dim i As Integer For i = 0 To myArr.Length - 1 Console.WriteLine(" {0,-25} {1}", myArr(i).Key, myArr(i).Value) Next i Console.WriteLine() ' Searches for a key. If myCol.Contains("Kiwis") Then Console.WriteLine("The collection contains the key ""Kiwis"".") Else Console.WriteLine("The collection does not contain the key ""Kiwis"".") End If Console.WriteLine() ' Deletes a key. myCol.Remove("Plums") Console.WriteLine("The collection contains the following elements after removing ""Plums"":") PrintKeysAndValues(myCol) ' Clears the entire collection. myCol.Clear() Console.WriteLine("The collection contains the following elements after it is cleared:") PrintKeysAndValues(myCol) End Sub 'Main ' Uses the For Each statement which hides the complexity of the enumerator. ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection. Public Shared Sub PrintKeysAndValues(myCol As IDictionary) Console.WriteLine(" KEY VALUE") Dim de As DictionaryEntry For Each de In myCol Console.WriteLine(" {0,-25} {1}", de.Key, de.Value) Next de Console.WriteLine() End Sub 'PrintKeysAndValues ' Uses the enumerator. ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection. Public Shared Sub PrintKeysAndValues2(myCol As IDictionary) Dim myEnumerator As IDictionaryEnumerator = myCol.GetEnumerator() Console.WriteLine(" KEY VALUE") While myEnumerator.MoveNext() Console.WriteLine(" {0,-25} {1}", myEnumerator.Key, myEnumerator.Value) End While Console.WriteLine() End Sub 'PrintKeysAndValues2 ' Uses the Keys, Values, Count, and Item properties. Public Shared Sub PrintKeysAndValues3(myCol As ListDictionary) Dim myKeys(myCol.Count) As [String] myCol.Keys.CopyTo(myKeys, 0) Console.WriteLine(" INDEX KEY VALUE") Dim i As Integer For i = 0 To myCol.Count - 1 Console.WriteLine(" {0,-5} {1,-25} {2}", i, myKeys(i), myCol(myKeys(i))) Next i Console.WriteLine() End Sub 'PrintKeysAndValues3 End Class 'SamplesListDictionary 'This code produces the following output. 'Note that because a dictionary is implemented for fast keyed access the order 'of the items in the dictionary are not gauranteed and, as a result, should not 'be depended on. ' 'Displays the elements using for each: ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'Displays the elements using the IDictionaryEnumerator: ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'Displays the elements using the Keys, Values, Count, and Item properties: ' INDEX KEY VALUE ' 0 Braeburn Apples 1.49 ' 1 Fuji Apples 1.29 ' 2 Gala Apples 1.49 ' 3 Golden Delicious Apples 1.29 ' 4 Granny Smith Apples 0.89 ' 5 Red Delicious Apples 0.99 ' 'Displays the elements in the array: ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'The collection does not contain the key "Kiwis". ' 'The collection contains the following elements after removing "Plums": ' KEY VALUE ' Braeburn Apples 1.49 ' Fuji Apples 1.29 ' Gala Apples 1.49 ' Golden Delicious Apples 1.29 ' Granny Smith Apples 0.89 ' Red Delicious Apples 0.99 ' 'The collection contains the following elements after it is cleared: ' KEY VALUE '
using System; using System.Collections; using System.Collections.Specialized; public class SamplesListDictionary { public static void Main() { // Creates and initializes a new ListDictionary. ListDictionary myCol = new ListDictionary(); myCol.Add( "Braeburn Apples", "1.49" ); myCol.Add( "Fuji Apples", "1.29" ); myCol.Add( "Gala Apples", "1.49" ); myCol.Add( "Golden Delicious Apples", "1.29" ); myCol.Add( "Granny Smith Apples", "0.89" ); myCol.Add( "Red Delicious Apples", "0.99" ); // Display the contents of the collection using foreach. This is the preferred method. Console.WriteLine( "Displays the elements using foreach:" ); PrintKeysAndValues1( myCol ); // Display the contents of the collection using the enumerator. Console.WriteLine( "Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); // Display the contents of the collection using the Keys, Values, Count, and Item properties. Console.WriteLine( "Displays the elements using the Keys, Values, Count, and Item properties:" ); PrintKeysAndValues3( myCol ); // Copies the ListDictionary to an array with DictionaryEntry elements. DictionaryEntry[] myArr = new DictionaryEntry[myCol.Count]; myCol.CopyTo( myArr, 0 ); // Displays the values in the array. Console.WriteLine( "Displays the elements in the array:" ); Console.WriteLine( " KEY VALUE" ); for ( int i = 0; i < myArr.Length; i++ ) Console.WriteLine( " {0,-25} {1}", myArr[i].Key, myArr[i].Value ); Console.WriteLine(); // Searches for a key. if ( myCol.Contains( "Kiwis" ) ) Console.WriteLine( "The collection contains the key \"Kiwis\"." ); else Console.WriteLine( "The collection does not contain the key \"Kiwis\"." ); Console.WriteLine(); // Deletes a key. myCol.Remove( "Plums" ); Console.WriteLine( "The collection contains the following elements after removing \"Plums\":" ); PrintKeysAndValues1( myCol ); // Clears the entire collection. myCol.Clear(); Console.WriteLine( "The collection contains the following elements after it is cleared:" ); PrintKeysAndValues1( myCol ); } // Uses the foreach statement which hides the complexity of the enumerator. // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection. public static void PrintKeysAndValues1( IDictionary myCol ) { Console.WriteLine( " KEY VALUE" ); foreach ( DictionaryEntry de in myCol ) Console.WriteLine( " {0,-25} {1}", de.Key, de.Value ); Console.WriteLine(); } // Uses the enumerator. // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection. public static void PrintKeysAndValues2( IDictionary myCol ) { IDictionaryEnumerator myEnumerator = myCol.GetEnumerator(); Console.WriteLine( " KEY VALUE" ); while ( myEnumerator.MoveNext() ) Console.WriteLine( " {0,-25} {1}", myEnumerator.Key, myEnumerator.Value ); Console.WriteLine(); } // Uses the Keys, Values, Count, and Item properties. public static void PrintKeysAndValues3( ListDictionary myCol ) { String[] myKeys = new String[myCol.Count]; myCol.Keys.CopyTo( myKeys, 0 ); Console.WriteLine( " INDEX KEY VALUE" ); for ( int i = 0; i < myCol.Count; i++ ) Console.WriteLine( " {0,-5} {1,-25} {2}", i, myKeys[i], myCol[myKeys[i]] ); Console.WriteLine(); } } /* This code produces output similar to the following. Note that because a dictionary is implemented for fast keyed access the order of the items in the dictionary are not gauranteed and, as a result, should not be depended on. Displays the elements using foreach: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Braeburn Apples 1.49 1 Fuji Apples 1.29 2 Gala Apples 1.49 3 Golden Delicious Apples 1.29 4 Granny Smith Apples 0.89 5 Red Delicious Apples 0.99 Displays the elements in the array: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection contains the following elements after it is cleared: KEY VALUE */
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; void PrintKeysAndValues1( IDictionary^ myCol ); void PrintKeysAndValues2( IDictionary^ myCol ); void PrintKeysAndValues3( ListDictionary^ myCol ); int main() { // Creates and initializes a new ListDictionary. ListDictionary^ myCol = gcnew ListDictionary; myCol->Add( "Braeburn Apples", "1.49" ); myCol->Add( "Fuji Apples", "1.29" ); myCol->Add( "Gala Apples", "1.49" ); myCol->Add( "Golden Delicious Apples", "1.29" ); myCol->Add( "Granny Smith Apples", "0.89" ); myCol->Add( "Red Delicious Apples", "0.99" ); // Display the contents of the collection using for each. This is the preferred method. Console::WriteLine( "Displays the elements using for each:" ); PrintKeysAndValues1( myCol ); // Display the contents of the collection using the enumerator. Console::WriteLine( "Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); // Display the contents of the collection using the Keys, Values, Count, and Item properties. Console::WriteLine( "Displays the elements using the Keys, Values, Count, and Item properties:" ); PrintKeysAndValues3( myCol ); // Copies the ListDictionary to an array with DictionaryEntry elements. array<DictionaryEntry>^myArr = gcnew array<DictionaryEntry>(myCol->Count); myCol->CopyTo( myArr, 0 ); // Displays the values in the array. Console::WriteLine( "Displays the elements in the array:" ); Console::WriteLine( " KEY VALUE" ); for ( int i = 0; i < myArr->Length; i++ ) Console::WriteLine( " {0,-25} {1}", myArr[ i ].Key, myArr[ i ].Value ); Console::WriteLine(); // Searches for a key. if ( myCol->Contains( "Kiwis" ) ) Console::WriteLine( "The collection contains the key \"Kiwis\"." ); else Console::WriteLine( "The collection does not contain the key \"Kiwis\"." ); Console::WriteLine(); // Deletes a key. myCol->Remove( "Plums" ); Console::WriteLine( "The collection contains the following elements after removing \"Plums\":" ); PrintKeysAndValues2( myCol ); // Clears the entire collection. myCol->Clear(); Console::WriteLine( "The collection contains the following elements after it is cleared:" ); PrintKeysAndValues2( myCol ); } // Uses the for each statement which hides the complexity of the enumerator. // NOTE: The for each statement is the preferred way of enumerating the contents of a collection. void PrintKeysAndValues1( IDictionary^ myCol ) { Console::WriteLine( " KEY VALUE" ); for each ( DictionaryEntry^ de in myCol ) Console::WriteLine( " {0,-25} {1}", de->Key, de->Value ); Console::WriteLine(); } // Uses the enumerator. void PrintKeysAndValues2( IDictionary^ myCol ) { IDictionaryEnumerator^ myEnumerator = myCol->GetEnumerator(); Console::WriteLine( " KEY VALUE" ); while ( myEnumerator->MoveNext() ) Console::WriteLine( " {0,-25} {1}", myEnumerator->Key, myEnumerator->Value ); Console::WriteLine(); } // Uses the Keys, Values, Count, and Item properties. void PrintKeysAndValues3( ListDictionary^ myCol ) { array<String^>^myKeys = gcnew array<String^>(myCol->Count); myCol->Keys->CopyTo( myKeys, 0 ); Console::WriteLine( " INDEX KEY VALUE" ); for ( int i = 0; i < myCol->Count; i++ ) Console::WriteLine( " {0,-5} {1,-25} {2}", i, myKeys[ i ], myCol[ myKeys[ i ] ] ); Console::WriteLine(); } /* This code produces the following output. Displays the elements using for each: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Braeburn Apples 1.49 1 Fuji Apples 1.29 2 Gala Apples 1.49 3 Golden Delicious Apples 1.29 4 Granny Smith Apples 0.89 5 Red Delicious Apples 0.99 Displays the elements in the array: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection contains the following elements after it is cleared: KEY VALUE */
import System.*; import System.Collections.*; import System.Collections.Specialized.*; public class SamplesListDictionary { public static void main(String[] args) { // Creates and initializes a new ListDictionary. ListDictionary myCol = new ListDictionary(); myCol.Add("Braeburn Apples", "1.49"); myCol.Add("Fuji Apples", "1.29"); myCol.Add("Gala Apples", "1.49"); myCol.Add("Golden Delicious Apples", "1.29"); myCol.Add("Granny Smith Apples", "0.89"); myCol.Add("Red Delicious Apples", "0.99"); // Display the contents of the collection using for. This is the // preferred method. Console.WriteLine("Displays the elements using for:"); PrintKeysAndValues1(myCol); // Display the contents of the collection using the enumerator. Console.WriteLine("Displays the elements using the" + " IDictionaryEnumerator:"); PrintKeysAndValues2(myCol); // Display the contents of the collection using the Keys, Values , // Count, and Item properties. Console.WriteLine("Displays the elements using the Keys, Values," + " Count, and Item properties:"); PrintKeysAndValues3(myCol); // Copies the ListDictionary to an array with DictionaryEntry elements. DictionaryEntry myArr[] = new DictionaryEntry[myCol.get_Count()]; myCol.CopyTo(myArr, 0); // Displays the values in the array. Console.WriteLine("Displays the elements in the array:"); Console.WriteLine(" KEY VALUE"); for(int i = 0; i < myArr.length; i++) { Console.WriteLine(" {0,-25} {1}", myArr[i].get_Key(), myArr[i].get_Value()); } Console.WriteLine(); // Searches for a key. if (myCol.Contains("Kiwis")) { Console.WriteLine("The collection contains the key \"Kiwis\"."); } else { Console.WriteLine("The collection does not contain the key" + " \"Kiwis\"."); } Console.WriteLine(); // Deletes a key. myCol.Remove("Plums"); Console.WriteLine("The collection contains the following elements" + " after removing \"Plums\":"); PrintKeysAndValues1(myCol); // Clears the entire collection. myCol.Clear(); Console.WriteLine("The collection contains the following elements" + " after it is cleared:"); PrintKeysAndValues1(myCol); } //main // Uses the for statement which hides the complexity of the enumerator. // NOTE: The for statement is the preferred way of enumerating the // contents of a collection. public static void PrintKeysAndValues1(IDictionary myCol) { String strKeys[] = new String[myCol.get_Count()]; myCol.get_Keys().CopyTo(strKeys,0); Console.WriteLine(" KEY VALUE"); for (int iCtr = 0; iCtr < myCol.get_Count(); iCtr++) { Console.WriteLine(" {0,-25} {1}", strKeys[iCtr], myCol.get_Item(strKeys[iCtr])); } Console.WriteLine(); } //PrintKeysAndValues1 // Uses the enumerator. // NOTE: The for statement is the preferred way of enumerating the // contents of a collection. public static void PrintKeysAndValues2(IDictionary myCol) { IDictionaryEnumerator myEnumerator = myCol.GetEnumerator(); Console.WriteLine(" KEY VALUE"); while(myEnumerator.MoveNext()) { Console.WriteLine(" {0,-25} {1}", myEnumerator.get_Key() , myEnumerator.get_Value()); } Console.WriteLine(); } //PrintKeysAndValues2 // Uses the Keys, Values, Count, and Item properties. public static void PrintKeysAndValues3(ListDictionary myCol) { String myKeys[] = new String[myCol.get_Count()]; myCol.get_Keys().CopyTo(myKeys, 0); Console.WriteLine(" INDEX KEY VALUE"); for(int i=0; i < myCol.get_Count(); i++) { System.Console.WriteLine(" {0,-5} {1,-25} {2}",(Int32)i, myKeys[i],myCol.get_Item(myKeys[i])); } Console.WriteLine(); } //PrintKeysAndValues3 } //SamplesListDictionary /* Displays the elements using for: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Braeburn Apples 1.49 1 Fuji Apples 1.29 2 Gala Apples 1.49 3 Golden Delicious Apples 1.29 4 Granny Smith Apples 0.89 5 Red Delicious Apples 0.99 Displays the elements in the array: KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Braeburn Apples 1.49 Fuji Apples 1.29 Gala Apples 1.49 Golden Delicious Apples 1.29 Granny Smith Apples 0.89 Red Delicious Apples 0.99 The collection contains the following elements after it is cleared: KEY VALUE */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ListDictionary コンストラクタ (IComparer)
アセンブリ: System (system.dll 内)


比較演算子は 2 つのキーが等しいかどうかを判断します。ListDictionary 内のすべてのキーは一意である必要があります。既定の比較演算子は、キーの Object.Equals の実装です。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ListDictionary コンストラクタ

名前 | 説明 |
---|---|
ListDictionary () | 既定の比較演算子を使用して空の ListDictionary を作成します。 .NET Compact Framework によってサポートされています。 |
ListDictionary (IComparer) | 指定した比較演算子を使用して空の ListDictionary を作成します。 .NET Compact Framework によってサポートされています。 |

ListDictionary プロパティ
ListDictionary メソッド

名前 | 説明 | |
---|---|---|
![]() | Add | 指定したキーおよび値を持つエントリを ListDictionary に追加します。 |
![]() | Clear | ListDictionary からすべてのエントリを削除します。 |
![]() | Contains | ListDictionary に特定のキーが格納されているかどうかを判断します。 |
![]() | CopyTo | 1 次元の Array インスタンスの指定したインデックスに ListDictionary のエントリをコピーします。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetEnumerator | ListDictionary を反復処理する IDictionaryEnumerator を返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | Remove | 指定したキーを持つエントリを ListDictionary から削除します。 |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |


ListDictionary メンバ
シングルリンク リストを使用して IDictionary を実装します。格納する項目数が通常 10 以下であるコレクションに対して推奨されます。
ListDictionary データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Add | 指定したキーおよび値を持つエントリを ListDictionary に追加します。 |
![]() | Clear | ListDictionary からすべてのエントリを削除します。 |
![]() | Contains | ListDictionary に特定のキーが格納されているかどうかを判断します。 |
![]() | CopyTo | 1 次元の Array インスタンスの指定したインデックスに ListDictionary のエントリをコピーします。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetEnumerator | ListDictionary を反復処理する IDictionaryEnumerator を返します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | Remove | 指定したキーを持つエントリを ListDictionary から削除します。 |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |


- ListDictionaryのページへのリンク