OrderedDictionary Class
Assembly: System (in system.dll)
[SerializableAttribute] public class OrderedDictionary : IOrderedDictionary, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
/** @attribute SerializableAttribute() */ public class OrderedDictionary implements IOrderedDictionary, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
SerializableAttribute public class OrderedDictionary implements IOrderedDictionary, IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback
Not applicable.
Each element is a key/value pair stored in a DictionaryEntry object. A key cannot be a null reference (Nothing in Visual Basic), but a value can be.
The elements of an OrderedDictionary are not sorted in any way. OrderedDictionary collections allow access by both index as well as key.
The foreach statement of the C# language (For Each in Visual Basic) requires the type of each element in the collection. Since each element of the OrderedDictionary collection is a key/value pair, the element type is not the type of the key or the type of the value. Instead, the element type is DictionaryEntry. The following code shows C# and Visual Basic syntax.
The foreach statement is a wrapper around the enumerator, which only allows reading from, not writing to, the collection.
The following code example demonstrates the creation, population and modification of an OrderedDictionary collection, as well as two techniques to display the contents of the OrderedDictionary: one using the Keys and Values properties and the other creating an enumerator through the GetEnumerator method.
// 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 Server 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
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.