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

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

ディクショナリの要素数が不明な場合は、このクラスをお勧めします。このクラスには、コレクションの小さいうちは ListDictionary の向上したパフォーマンスを利用し、コレクションが大きくなったら、大きいコレクションを ListDictionary よりも効率的に処理できる Hashtable に切り替えるという柔軟性があります。
コレクションの初期サイズが ListDictionary の最適サイズより大きい場合、ListDictionary から Hashtable へ要素をコピーするオーバーヘッドを避けるために、コレクションは Hashtable に格納されます。
コンストラクタには、コレクションが文字列を比較するときに大文字と小文字を区別するかどうかをユーザーに指定させるブール型のパラメータがあります。コレクションが大文字と小文字を区別する場合は、そのキーの Object.GetHashCode および Object.Equals の実装を使用します。コレクションが大文字と小文字を区別しない場合は、大文字と小文字を区別しない単純な序数比較を行います。この場合は、インバリアント カルチャについてだけ、大文字と小文字を区別する規則に従います。既定では、コレクションは大文字と小文字を区別します。インバリアント カルチャの詳細については、System.Globalization.CultureInfo のトピックを参照してください。
キーには null 参照 (Visual Basic では Nothing) は使用できませんが、値には使用できます。
C# 言語の foreach ステートメント (Visual Basic では for each) は、コレクション内の各要素の型を必要とします。HybridDictionary の各要素はキー/値ペアであるため、要素の型は、キーの型や値の型にはなりません。その代わり、要素の型は DictionaryEntry になります。例 :
foreach (DictionaryEntry de in myHybridDictionary) {...}
For Each de As DictionaryEntry In myHybridDictionary ... Next de
foreach ステートメントは、列挙子のラッパーです。これは、コレクションからの読み取りだけを許可し、コレクションへの書き込みを防ぎます。
Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows CE プラットフォームメモ : 大文字と小文字を区別しない HybridDictionary に追加するすべてのキーは、文字列の値を持つ必要があります。

HybridDictionary のプロパティとメソッドのいくつかの例を次に示します。
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class SamplesHybridDictionary Public Shared Sub Main() ' Creates and initializes a new HybridDictionary. Dim myCol As New HybridDictionary() 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") myCol.Add("Plantain Bananas", "1.49") myCol.Add("Yellow Bananas", "0.79") myCol.Add("Strawberries", "3.33") myCol.Add("Cranberries", "5.98") myCol.Add("Navel Oranges", "1.29") myCol.Add("Grapes", "1.99") myCol.Add("Honeydew Melon", "0.59") myCol.Add("Seedless Watermelon", "0.49") myCol.Add("Pineapple", "1.49") myCol.Add("Nectarine", "1.99") myCol.Add("Plums", "1.69") myCol.Add("Peaches", "1.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 HybridDictionary 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"":") PrintKeysAndValues1(myCol) ' Clears the entire collection. myCol.Clear() Console.WriteLine("The collection contains the following elements after it is cleared:") PrintKeysAndValues1(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 PrintKeysAndValues1(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 HybridDictionary) 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 'SamplesHybridDictionary 'This code produces the following output. ' 'Displays the elements using For Each: ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Plums 1.69 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'Displays the elements using the IDictionaryEnumerator: ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Plums 1.69 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'Displays the elements using the Keys, Values, Count, and Item properties: ' INDEX KEY VALUE ' 0 Strawberries 3.33 ' 1 Yellow Bananas 0.79 ' 2 Cranberries 5.98 ' 3 Grapes 1.99 ' 4 Granny Smith Apples 0.89 ' 5 Seedless Watermelon 0.49 ' 6 Honeydew Melon 0.59 ' 7 Red Delicious Apples 0.99 ' 8 Navel Oranges 1.29 ' 9 Fuji Apples 1.29 ' 10 Plantain Bananas 1.49 ' 11 Gala Apples 1.49 ' 12 Pineapple 1.49 ' 13 Plums 1.69 ' 14 Braeburn Apples 1.49 ' 15 Peaches 1.99 ' 16 Golden Delicious Apples 1.29 ' 17 Nectarine 1.99 ' 'Displays the elements in the array: ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Plums 1.69 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'The collection does not contain the key "Kiwis". ' 'The collection contains the following elements after removing "Plums": ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'The collection contains the following elements after it is cleared: ' KEY VALUE
using System; using System.Collections; using System.Collections.Specialized; public class SamplesHybridDictionary { public static void Main() { // Creates and initializes a new HybridDictionary. HybridDictionary myCol = new HybridDictionary(); 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" ); myCol.Add( "Plantain Bananas", "1.49" ); myCol.Add( "Yellow Bananas", "0.79" ); myCol.Add( "Strawberries", "3.33" ); myCol.Add( "Cranberries", "5.98" ); myCol.Add( "Navel Oranges", "1.29" ); myCol.Add( "Grapes", "1.99" ); myCol.Add( "Honeydew Melon", "0.59" ); myCol.Add( "Seedless Watermelon", "0.49" ); myCol.Add( "Pineapple", "1.49" ); myCol.Add( "Nectarine", "1.99" ); myCol.Add( "Plums", "1.69" ); myCol.Add( "Peaches", "1.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 HybridDictionary 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( HybridDictionary 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 the following output. Displays the elements using foreach: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Strawberries 3.33 1 Yellow Bananas 0.79 2 Cranberries 5.98 3 Grapes 1.99 4 Granny Smith Apples 0.89 5 Seedless Watermelon 0.49 6 Honeydew Melon 0.59 7 Red Delicious Apples 0.99 8 Navel Oranges 1.29 9 Fuji Apples 1.29 10 Plantain Bananas 1.49 11 Gala Apples 1.49 12 Pineapple 1.49 13 Plums 1.69 14 Braeburn Apples 1.49 15 Peaches 1.99 16 Golden Delicious Apples 1.29 17 Nectarine 1.99 Displays the elements in the array: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.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( HybridDictionary^ myCol ); int main() { // Creates and initializes a new HybridDictionary. HybridDictionary^ myCol = gcnew HybridDictionary; 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" ); myCol->Add( "Plantain Bananas", "1.49" ); myCol->Add( "Yellow Bananas", "0.79" ); myCol->Add( "Strawberries", "3.33" ); myCol->Add( "Cranberries", "5.98" ); myCol->Add( "Navel Oranges", "1.29" ); myCol->Add( "Grapes", "1.99" ); myCol->Add( "Honeydew Melon", "0.59" ); myCol->Add( "Seedless Watermelon", "0.49" ); myCol->Add( "Pineapple", "1.49" ); myCol->Add( "Nectarine", "1.99" ); myCol->Add( "Plums", "1.69" ); myCol->Add( "Peaches", "1.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 HybridDictionary 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\":" ); PrintKeysAndValues1( myCol ); // Clears the entire collection. myCol->Clear(); Console::WriteLine( "The collection contains the following elements after it is cleared:" ); PrintKeysAndValues1( 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( HybridDictionary^ 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 Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Strawberries 3.33 1 Yellow Bananas 0.79 2 Cranberries 5.98 3 Grapes 1.99 4 Granny Smith Apples 0.89 5 Seedless Watermelon 0.49 6 Honeydew Melon 0.59 7 Red Delicious Apples 0.99 8 Navel Oranges 1.29 9 Fuji Apples 1.29 10 Plantain Bananas 1.49 11 Gala Apples 1.49 12 Pineapple 1.49 13 Plums 1.69 14 Braeburn Apples 1.49 15 Peaches 1.99 16 Golden Delicious Apples 1.29 17 Nectarine 1.99 Displays the elements in the array: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection contains the following elements after it is cleared: KEY VALUE */
import System.*; import System.Collections.*; import System.Collections.Specialized.*; public class SamplesHybridDictionary { public static void main(String[] args) { // Creates and initializes a new HybridDictionary. HybridDictionary myCol = new HybridDictionary(); 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"); myCol.Add("Plantain Bananas", "1.49"); myCol.Add("Yellow Bananas", "0.79"); myCol.Add("Strawberries", "3.33"); myCol.Add("Cranberries", "5.98"); myCol.Add("Navel Oranges", "1.29"); myCol.Add("Grapes", "1.99"); myCol.Add("Honeydew Melon", "0.59"); myCol.Add("Seedless Watermelon", "0.49"); myCol.Add("Pineapple", "1.49"); myCol.Add("Nectarine", "1.99"); myCol.Add("Plums", "1.69"); myCol.Add("Peaches", "1.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 HybridDictionary 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(HybridDictionary 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 ++) { Console.WriteLine(" {0,-5} {1,-25} {2}", (Int32)i, myKeys[i], myCol.get_Item(myKeys[i])); } Console.WriteLine(); } //PrintKeysAndValues3 } //SamplesHybridDictionary /* Displays the elements using for: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Strawberries 3.33 1 Yellow Bananas 0.79 2 Cranberries 5.98 3 Grapes 1.99 4 Granny Smith Apples 0.89 5 Seedless Watermelon 0.49 6 Honeydew Melon 0.59 7 Red Delicious Apples 0.99 8 Navel Oranges 1.29 9 Fuji Apples 1.29 10 Plantain Bananas 1.49 11 Gala Apples 1.49 12 Pineapple 1.49 13 Plums 1.69 14 Braeburn Apples 1.49 15 Peaches 1.99 16 Golden Delicious Apples 1.29 17 Nectarine 1.99 Displays the elements in the array: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection contains the following elements after it is cleared: KEY VALUE */

System.Collections.Specialized.HybridDictionary
System.Web.Mobile.CookielessData

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

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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


既定では、コレクションは、大文字と小文字を区別し、キーの Object.GetHashCode の実装をハッシュ コード プロバイダとして使用し、キーの Object.Equals の実装を比較演算子として使用します。
比較演算子は 2 つのキーが等しいかどうかを判断します。HybridDictionary 内のすべてのキーは一意である必要があります。

HybridDictionary のプロパティとメソッドのいくつかの例を次に示します。
Imports System Imports System.Collections Imports System.Collections.Specialized Public Class SamplesHybridDictionary Public Shared Sub Main() ' Creates and initializes a new HybridDictionary. Dim myCol As New HybridDictionary() 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") myCol.Add("Plantain Bananas", "1.49") myCol.Add("Yellow Bananas", "0.79") myCol.Add("Strawberries", "3.33") myCol.Add("Cranberries", "5.98") myCol.Add("Navel Oranges", "1.29") myCol.Add("Grapes", "1.99") myCol.Add("Honeydew Melon", "0.59") myCol.Add("Seedless Watermelon", "0.49") myCol.Add("Pineapple", "1.49") myCol.Add("Nectarine", "1.99") myCol.Add("Plums", "1.69") myCol.Add("Peaches", "1.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 HybridDictionary 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"":") PrintKeysAndValues1(myCol) ' Clears the entire collection. myCol.Clear() Console.WriteLine("The collection contains the following elements after it is cleared:") PrintKeysAndValues1(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 PrintKeysAndValues1(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 HybridDictionary) 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 'SamplesHybridDictionary 'This code produces the following output. ' 'Displays the elements using For Each: ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Plums 1.69 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'Displays the elements using the IDictionaryEnumerator: ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Plums 1.69 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'Displays the elements using the Keys, Values, Count, and Item properties: ' INDEX KEY VALUE ' 0 Strawberries 3.33 ' 1 Yellow Bananas 0.79 ' 2 Cranberries 5.98 ' 3 Grapes 1.99 ' 4 Granny Smith Apples 0.89 ' 5 Seedless Watermelon 0.49 ' 6 Honeydew Melon 0.59 ' 7 Red Delicious Apples 0.99 ' 8 Navel Oranges 1.29 ' 9 Fuji Apples 1.29 ' 10 Plantain Bananas 1.49 ' 11 Gala Apples 1.49 ' 12 Pineapple 1.49 ' 13 Plums 1.69 ' 14 Braeburn Apples 1.49 ' 15 Peaches 1.99 ' 16 Golden Delicious Apples 1.29 ' 17 Nectarine 1.99 ' 'Displays the elements in the array: ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Plums 1.69 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'The collection does not contain the key "Kiwis". ' 'The collection contains the following elements after removing "Plums": ' KEY VALUE ' Strawberries 3.33 ' Yellow Bananas 0.79 ' Cranberries 5.98 ' Grapes 1.99 ' Granny Smith Apples 0.89 ' Seedless Watermelon 0.49 ' Honeydew Melon 0.59 ' Red Delicious Apples 0.99 ' Navel Oranges 1.29 ' Fuji Apples 1.29 ' Plantain Bananas 1.49 ' Gala Apples 1.49 ' Pineapple 1.49 ' Braeburn Apples 1.49 ' Peaches 1.99 ' Golden Delicious Apples 1.29 ' Nectarine 1.99 ' 'The collection contains the following elements after it is cleared: ' KEY VALUE
using System; using System.Collections; using System.Collections.Specialized; public class SamplesHybridDictionary { public static void Main() { // Creates and initializes a new HybridDictionary. HybridDictionary myCol = new HybridDictionary(); 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" ); myCol.Add( "Plantain Bananas", "1.49" ); myCol.Add( "Yellow Bananas", "0.79" ); myCol.Add( "Strawberries", "3.33" ); myCol.Add( "Cranberries", "5.98" ); myCol.Add( "Navel Oranges", "1.29" ); myCol.Add( "Grapes", "1.99" ); myCol.Add( "Honeydew Melon", "0.59" ); myCol.Add( "Seedless Watermelon", "0.49" ); myCol.Add( "Pineapple", "1.49" ); myCol.Add( "Nectarine", "1.99" ); myCol.Add( "Plums", "1.69" ); myCol.Add( "Peaches", "1.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 HybridDictionary 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( HybridDictionary 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 the following output. Displays the elements using foreach: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Strawberries 3.33 1 Yellow Bananas 0.79 2 Cranberries 5.98 3 Grapes 1.99 4 Granny Smith Apples 0.89 5 Seedless Watermelon 0.49 6 Honeydew Melon 0.59 7 Red Delicious Apples 0.99 8 Navel Oranges 1.29 9 Fuji Apples 1.29 10 Plantain Bananas 1.49 11 Gala Apples 1.49 12 Pineapple 1.49 13 Plums 1.69 14 Braeburn Apples 1.49 15 Peaches 1.99 16 Golden Delicious Apples 1.29 17 Nectarine 1.99 Displays the elements in the array: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.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( HybridDictionary^ myCol ); int main() { // Creates and initializes a new HybridDictionary. HybridDictionary^ myCol = gcnew HybridDictionary; 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" ); myCol->Add( "Plantain Bananas", "1.49" ); myCol->Add( "Yellow Bananas", "0.79" ); myCol->Add( "Strawberries", "3.33" ); myCol->Add( "Cranberries", "5.98" ); myCol->Add( "Navel Oranges", "1.29" ); myCol->Add( "Grapes", "1.99" ); myCol->Add( "Honeydew Melon", "0.59" ); myCol->Add( "Seedless Watermelon", "0.49" ); myCol->Add( "Pineapple", "1.49" ); myCol->Add( "Nectarine", "1.99" ); myCol->Add( "Plums", "1.69" ); myCol->Add( "Peaches", "1.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 HybridDictionary 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\":" ); PrintKeysAndValues1( myCol ); // Clears the entire collection. myCol->Clear(); Console::WriteLine( "The collection contains the following elements after it is cleared:" ); PrintKeysAndValues1( 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( HybridDictionary^ 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 Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Strawberries 3.33 1 Yellow Bananas 0.79 2 Cranberries 5.98 3 Grapes 1.99 4 Granny Smith Apples 0.89 5 Seedless Watermelon 0.49 6 Honeydew Melon 0.59 7 Red Delicious Apples 0.99 8 Navel Oranges 1.29 9 Fuji Apples 1.29 10 Plantain Bananas 1.49 11 Gala Apples 1.49 12 Pineapple 1.49 13 Plums 1.69 14 Braeburn Apples 1.49 15 Peaches 1.99 16 Golden Delicious Apples 1.29 17 Nectarine 1.99 Displays the elements in the array: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection contains the following elements after it is cleared: KEY VALUE */
import System.*; import System.Collections.*; import System.Collections.Specialized.*; public class SamplesHybridDictionary { public static void main(String[] args) { // Creates and initializes a new HybridDictionary. HybridDictionary myCol = new HybridDictionary(); 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"); myCol.Add("Plantain Bananas", "1.49"); myCol.Add("Yellow Bananas", "0.79"); myCol.Add("Strawberries", "3.33"); myCol.Add("Cranberries", "5.98"); myCol.Add("Navel Oranges", "1.29"); myCol.Add("Grapes", "1.99"); myCol.Add("Honeydew Melon", "0.59"); myCol.Add("Seedless Watermelon", "0.49"); myCol.Add("Pineapple", "1.49"); myCol.Add("Nectarine", "1.99"); myCol.Add("Plums", "1.69"); myCol.Add("Peaches", "1.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 HybridDictionary 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(HybridDictionary 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 ++) { Console.WriteLine(" {0,-5} {1,-25} {2}", (Int32)i, myKeys[i], myCol.get_Item(myKeys[i])); } Console.WriteLine(); } //PrintKeysAndValues3 } //SamplesHybridDictionary /* Displays the elements using for: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the IDictionaryEnumerator: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Strawberries 3.33 1 Yellow Bananas 0.79 2 Cranberries 5.98 3 Grapes 1.99 4 Granny Smith Apples 0.89 5 Seedless Watermelon 0.49 6 Honeydew Melon 0.59 7 Red Delicious Apples 0.99 8 Navel Oranges 1.29 9 Fuji Apples 1.29 10 Plantain Bananas 1.49 11 Gala Apples 1.49 12 Pineapple 1.49 13 Plums 1.69 14 Braeburn Apples 1.49 15 Peaches 1.99 16 Golden Delicious Apples 1.29 17 Nectarine 1.99 Displays the elements in the array: KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Plums 1.69 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.99 The collection does not contain the key "Kiwis". The collection contains the following elements after removing "Plums": KEY VALUE Strawberries 3.33 Yellow Bananas 0.79 Cranberries 5.98 Grapes 1.99 Granny Smith Apples 0.89 Seedless Watermelon 0.49 Honeydew Melon 0.59 Red Delicious Apples 0.99 Navel Oranges 1.29 Fuji Apples 1.29 Plantain Bananas 1.49 Gala Apples 1.49 Pineapple 1.49 Braeburn Apples 1.49 Peaches 1.99 Golden Delicious Apples 1.29 Nectarine 1.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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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


caseInsensitive が false である場合、コレクションは、キーの Object.GetHashCode および Object.Equals の実装を使用します。caseInsensitive が true である場合、コレクションは、大文字と小文字を区別しない単純な序数比較を行います。この場合は、インバリアント カルチャについてだけ、大文字と小文字を区別する規則に従います。インバリアント カルチャの詳細については、System.Globalization.CultureInfo のトピックを参照してください。

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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


コレクションの初期サイズが ListDictionary の最適サイズより大きい場合、ListDictionary から Hashtable へ要素をコピーするオーバーヘッドを避けるために、コレクションは Hashtable に格納されます。
既定では、コレクションは、大文字と小文字を区別し、キーの Object.GetHashCode の実装をハッシュ コード プロバイダとして使用し、キーの Object.Equals の実装を比較演算子として使用します。
比較演算子は 2 つのキーが等しいかどうかを判断します。HybridDictionary 内のすべてのキーは一意である必要があります。

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


HybridDictionary コンストラクタ (Int32, Boolean)
アセンブリ: System (system.dll 内)

Dim initialSize As Integer Dim caseInsensitive As Boolean Dim instance As New HybridDictionary(initialSize, caseInsensitive)

コレクションの初期サイズが ListDictionary の最適サイズより大きい場合、ListDictionary から Hashtable へ要素をコピーするオーバーヘッドを避けるために、コレクションは Hashtable に格納されます。
caseInsensitive が false である場合、コレクションは、キーの Object.GetHashCode および Object.Equals の実装を使用します。caseInsensitive が true である場合、コレクションは、大文字と小文字を区別しない単純な序数比較を行います。この場合は、インバリアント カルチャについてだけ、大文字と小文字を区別する規則に従います。インバリアント カルチャの詳細については、System.Globalization.CultureInfo のトピックを参照してください。

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


HybridDictionary コンストラクタ

名前 | 説明 |
---|---|
HybridDictionary () | 大文字と小文字を区別する空の HybridDictionary を作成します。 .NET Compact Framework によってサポートされています。 |
HybridDictionary (Boolean) | 大文字と小文字の区別を指定して、空の HybridDictionary を作成します。 .NET Compact Framework によってサポートされています。 |
HybridDictionary (Int32) | 指定した初期サイズで、大文字と小文字を区別する HybridDictionary を作成します。 .NET Compact Framework によってサポートされています。 |
HybridDictionary (Int32, Boolean) | 初期サイズおよび大文字と小文字の区別を指定して、HybridDictionary を作成します。 .NET Compact Framework によってサポートされています。 |

HybridDictionary プロパティ
HybridDictionary メソッド

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

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


HybridDictionary メンバ
コレクションが小さいうちは ListDictionary を使用して IDictionary を実装し、コレクションが大きくなったら Hashtable に切り替えます。
HybridDictionary データ型で公開されるメンバを以下の表に示します。



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

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


- HybridDictionaryのページへのリンク