OrderedDictionary クラス
アセンブリ: System (system.dll 内)
構文
<SerializableAttribute> _ Public Class OrderedDictionary Implements IOrderedDictionary, IDictionary, ICollection, IEnumerable, _ ISerializable, IDeserializationCallback
[SerializableAttribute] public class OrderedDictionary : IOrderedDictionary, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
[SerializableAttribute] public ref class OrderedDictionary : IOrderedDictionary, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
各要素は、DictionaryEntry オブジェクトに格納されているキー/値ペアです。キーには null 参照 (Visual Basic では Nothing) は使用できませんが、値は null でもかまいません。
C# 言語の foreach ステートメント (Visual Basic では For Each) は、コレクション内の各要素の型を必要とします。OrderedDictionary コレクションの各要素はキー/値ペアであるため、要素の型は、キーの型や値の型にはなりません。その代わり、要素の型は DictionaryEntry になります。C# および Visual Basic の構文を次のコードに示します。
foreach (DictionaryEntry de in myListDictionary) {...}
For Each de As DictionaryEntry In myListDictionary ... Next de
foreach ステートメントは、列挙子のラッパーです。これは、コレクションからの読み取りだけを許可し、コレクションへの書き込みを防ぎます。
OrderedDictionary コレクションの作成、データの読み込み、および変更を行う方法と、OrderedDictionary の内容を表示する 2 つの方法 (Keys プロパティと Values プロパティを使用する方法、および GetEnumerator メソッドを使用して列挙子を作成する方法) のコード例を次に示します。
' The following code example enumerates the elements of a OrderedDictionary. Imports System Imports System.Collections Imports System.Collections.Specialized Public Class OrderedDictionarySample Public Shared Sub Main() ' Creates and initializes a OrderedDictionary. Dim myOrderedDictionary As New OrderedDictionary() myOrderedDictionary.Add("testKey1", "testValue1") myOrderedDictionary.Add("testKey2", "testValue2") myOrderedDictionary.Add("keyToDelete", "valueToDelete") myOrderedDictionary.Add("testKey3", "testValue3") Dim keyCollection As ICollection = myOrderedDictionary.Keys Dim valueCollection As ICollection = myOrderedDictionary.Values ' Display the contents Imports the key and value collections DisplayContents( _ keyCollection, valueCollection, myOrderedDictionary.Count) ' Modifying the OrderedDictionary If Not myOrderedDictionary.IsReadOnly Then ' Insert a new key to the beginning of the OrderedDictionary myOrderedDictionary.Insert(0, "insertedKey1", "insertedValue1") ' Modify the value of the entry with the key "testKey2" myOrderedDictionary("testKey2") = "modifiedValue" ' Remove the last entry from the OrderedDictionary: "testKey3" myOrderedDictionary.RemoveAt(myOrderedDictionary.Count - 1) ' Remove the "keyToDelete" entry, if it exists If (myOrderedDictionary.Contains("keyToDelete")) Then myOrderedDictionary.Remove("keyToDelete") End If End If Console.WriteLine( _ "{0}Displaying the entries of a modified OrderedDictionary.", _ Environment.NewLine) DisplayContents( _ keyCollection, valueCollection, myOrderedDictionary.Count) ' Clear the OrderedDictionary and add new values myOrderedDictionary.Clear() myOrderedDictionary.Add("newKey1", "newValue1") myOrderedDictionary.Add("newKey2", "newValue2") myOrderedDictionary.Add("newKey3", "newValue3") ' Display the contents of the "new" Dictionary Imports an enumerator Dim myEnumerator As IDictionaryEnumerator = _ myOrderedDictionary.GetEnumerator() Console.WriteLine( _ "{0}Displaying the entries of a 'new' OrderedDictionary.", _ Environment.NewLine) DisplayEnumerator(myEnumerator) Console.ReadLine() End Sub ' Displays the contents of the OrderedDictionary from its keys and values Public Shared Sub DisplayContents( _ ByVal keyCollection As ICollection, _ ByVal valueCollection As ICollection, ByVal dictionarySize As Integer) Dim myKeys(dictionarySize) As [String] Dim myValues(dictionarySize) As [String] keyCollection.CopyTo(myKeys, 0) valueCollection.CopyTo(myValues, 0) ' Displays the contents of the OrderedDictionary Console.WriteLine(" INDEX KEY VALUE") Dim i As Integer For i = 0 To dictionarySize - 1 Console.WriteLine(" {0,-5} {1,-25} {2}", _ i, myKeys(i), myValues(i)) Next i Console.WriteLine() End Sub ' Displays the contents of the OrderedDictionary using its enumerator Public Shared Sub DisplayEnumerator( _ ByVal myEnumerator As IDictionaryEnumerator) Console.WriteLine(" KEY VALUE") While myEnumerator.MoveNext() Console.WriteLine(" {0,-25} {1}", _ myEnumerator.Key, myEnumerator.Value) End While End Sub End Class 'This code produces the following output. ' ' INDEX KEY VALUE '0: testKey1(testValue1) '1: testKey2(testValue2) '2: keyToDelete(valueToDelete) '3: testKey3(testValue3) ' ' 'Displaying the entries of a modified OrderedDictionary. ' INDEX KEY VALUE '0: insertedKey1(insertedValue1) '1: testKey1(testValue1) '2: testKey2(modifiedValue) ' ' 'Displaying the entries of a "new" OrderedDictionary. ' KEY(VALUE) ' newKey1(newValue1) ' newKey2(newValue2) ' newKey3(newValue3)
// The following code example enumerates the elements of a OrderedDictionary. using System; using System.Collections; using System.Collections.Specialized; public class OrderedDictionarySample { public static void Main() { // Creates and initializes a OrderedDictionary. OrderedDictionary myOrderedDictionary = new OrderedDictionary(); myOrderedDictionary.Add("testKey1", "testValue1"); myOrderedDictionary.Add("testKey2", "testValue2"); myOrderedDictionary.Add("keyToDelete", "valueToDelete"); myOrderedDictionary.Add("testKey3", "testValue3"); ICollection keyCollection = myOrderedDictionary.Keys; ICollection valueCollection = myOrderedDictionary.Values; // Display the contents using the key and value collections DisplayContents(keyCollection, valueCollection, myOrderedDictionary.Count); // Modifying the OrderedDictionary if (!myOrderedDictionary.IsReadOnly) { // Insert a new key to the beginning of the OrderedDictionary myOrderedDictionary.Insert(0, "insertedKey1", "insertedValue1"); // Modify the value of the entry with the key "testKey2" myOrderedDictionary["testKey2"] = "modifiedValue"; // Remove the last entry from the OrderedDictionary: "testKey3" myOrderedDictionary.RemoveAt(myOrderedDictionary.Count - 1); // Remove the "keyToDelete" entry, if it exists if (myOrderedDictionary.Contains("keyToDelete")) { myOrderedDictionary.Remove("keyToDelete"); } } Console.WriteLine( "{0}Displaying the entries of a modified OrderedDictionary." , Environment.NewLine); DisplayContents(keyCollection, valueCollection, myOrderedDictionary.Count); // Clear the OrderedDictionary and add new values myOrderedDictionary.Clear(); myOrderedDictionary.Add("newKey1", "newValue1"); myOrderedDictionary.Add("newKey2", "newValue2"); myOrderedDictionary.Add("newKey3", "newValue3"); // Display the contents of the "new" Dictionary using an enumerator IDictionaryEnumerator myEnumerator = myOrderedDictionary.GetEnumerator(); Console.WriteLine( "{0}Displaying the entries of a \"new\" OrderedDictionary.", Environment.NewLine); DisplayEnumerator(myEnumerator); Console.ReadLine(); } // Displays the contents of the OrderedDictionary from its keys and values public static void DisplayContents( ICollection keyCollection, ICollection valueCollection, int dictionarySize) { String[] myKeys = new String[dictionarySize]; String[] myValues = new String[dictionarySize]; keyCollection.CopyTo(myKeys, 0); valueCollection.CopyTo(myValues, 0); // Displays the contents of the OrderedDictionary Console.WriteLine(" INDEX KEY VALUE"); for (int i = 0; i < dictionarySize; i++) { Console.WriteLine(" {0,-5} {1,-25} {2}", i, myKeys[i], myValues[i]); } Console.WriteLine(); } // Displays the contents of the OrderedDictionary using its enumerator public static void DisplayEnumerator(IDictionaryEnumerator myEnumerator) { Console.WriteLine(" KEY VALUE"); while (myEnumerator.MoveNext()) { Console.WriteLine(" {0,-25} {1}", myEnumerator.Key, myEnumerator.Value); } } } /* This code produces the following output. INDEX KEY VALUE 0 testKey1 testValue1 1 testKey2 testValue2 2 keyToDelete valueToDelete 3 testKey3 testValue3 Displaying the entries of a modified OrderedDictionary. INDEX KEY VALUE 0 insertedKey1 insertedValue1 1 testKey1 testValue1 2 testKey2 modifiedValue Displaying the entries of a "new" OrderedDictionary. KEY VALUE newKey1 newValue1 newKey2 newValue2 newKey3 newValue3 */
System.Collections.Specialized.OrderedDictionary
System.Web.Configuration.AdapterDictionary
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Weblioに収録されているすべての辞書からOrderedDictionary クラスを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からOrderedDictionary クラスを検索
- OrderedDictionary クラスのページへのリンク