OrderedDictionary Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en samling nyckel/värde-par som är tillgängliga för nyckeln eller indexet.
public ref class OrderedDictionary : System::Collections::IDictionary, System::Collections::Specialized::IOrderedDictionary
public ref class OrderedDictionary : System::Collections::IDictionary, System::Collections::Specialized::IOrderedDictionary, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public ref class OrderedDictionary : System::Collections::Specialized::IOrderedDictionary, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary
[System.Serializable]
public class OrderedDictionary : System.Collections.IDictionary, System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
public class OrderedDictionary : System.Collections.Specialized.IOrderedDictionary, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type OrderedDictionary = class
interface ICollection
interface IEnumerable
interface IDictionary
interface IOrderedDictionary
[<System.Serializable>]
type OrderedDictionary = class
interface IOrderedDictionary
interface IDictionary
interface ICollection
interface IEnumerable
interface ISerializable
interface IDeserializationCallback
type OrderedDictionary = class
interface ICollection
interface IEnumerable
interface IDictionary
interface IOrderedDictionary
interface IDeserializationCallback
interface ISerializable
Public Class OrderedDictionary
Implements IDictionary, IOrderedDictionary
Public Class OrderedDictionary
Implements IDeserializationCallback, IDictionary, IOrderedDictionary, ISerializable
Public Class OrderedDictionary
Implements IDeserializationCallback, IOrderedDictionary, ISerializable
- Arv
-
OrderedDictionary
- Härledda
- Attribut
- Implementeringar
Exempel
Följande kodexempel visar skapande, population och ändring av en OrderedDictionary samling, samt två tekniker för att visa innehållet i OrderedDictionary: en med Keys egenskaperna och Values och den andra som skapar en uppräkning via GetEnumerator metoden.
// 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);
}
// 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
*/
' The following code example enumerates the elements of a OrderedDictionary.
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)
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)
Kommentarer
Varje element är ett nyckel/värde-par som lagras i ett DictionaryEntry objekt. En nyckel kan inte vara null, men ett värde kan vara.
Elementen i en OrderedDictionary sorteras inte efter nyckeln, till skillnad från elementen i en SortedDictionary<TKey,TValue> klass. Du kan komma åt elementen antingen via nyckeln eller indexet.
Instruktionen foreach för C#-språket (For Each i Visual Basic) returnerar objekt som är av typen för varje element i samlingen. Eftersom varje element i OrderedDictionary samlingen är ett nyckel/värde-par är elementtypen inte typen av nyckel eller typen av värde. Elementtypen är DictionaryEntryi stället . Följande kod visar syntaxen.
foreach (DictionaryEntry de in myOrderedDictionary)
{
//...
}
For Each de As DictionaryEntry In myOrderedDictionary
'...
Next de
-instruktionen foreach är en omslutning runt uppräknaren, som endast tillåter läsning från, inte skriva till, samlingen.
Konstruktorer
| Name | Description |
|---|---|
| OrderedDictionary() |
Initierar en ny instans av OrderedDictionary klassen. |
| OrderedDictionary(IEqualityComparer) |
Initierar en ny instans av OrderedDictionary klassen med den angivna jämförelsen. |
| OrderedDictionary(Int32, IEqualityComparer) |
Initierar en ny instans av OrderedDictionary klassen med den angivna initiala kapaciteten och jämförelsen. |
| OrderedDictionary(Int32) |
Initierar en ny instans av OrderedDictionary klassen med den angivna initiala kapaciteten. |
| OrderedDictionary(SerializationInfo, StreamingContext) |
Initierar en ny instans av klassen som kan serialiseras med hjälp av OrderedDictionary angivna SerializationInfo objekt och StreamingContext objekt. |
Egenskaper
| Name | Description |
|---|---|
| Count |
Hämtar antalet nyckel/värden-par som finns i OrderedDictionary samlingen. |
| IsReadOnly |
Hämtar ett värde som anger om OrderedDictionary samlingen är skrivskyddad. |
| Item[Int32] |
Hämtar eller anger värdet vid det angivna indexet. |
| Item[Object] |
Hämtar eller anger värdet med den angivna nyckeln. |
| Keys |
Hämtar ett ICollection objekt som innehåller nycklarna i OrderedDictionary samlingen. |
| Values |
Hämtar ett ICollection objekt som innehåller värdena i OrderedDictionary samlingen. |
Metoder
| Name | Description |
|---|---|
| Add(Object, Object) |
Lägger till en post med den angivna nyckeln och värdet i OrderedDictionary samlingen med det lägsta tillgängliga indexet. |
| AsReadOnly() |
Returnerar en skrivskyddad kopia av den aktuella OrderedDictionary samlingen. |
| Clear() |
Tar bort alla element från OrderedDictionary samlingen. |
| Contains(Object) |
Avgör om samlingen OrderedDictionary innehåller en specifik nyckel. |
| CopyTo(Array, Int32) |
Kopierar elementen OrderedDictionary till ett endimensionellt Array objekt i det angivna indexet. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetEnumerator() |
Returnerar ett IDictionaryEnumerator objekt som itererar genom OrderedDictionary samlingen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Implementerar ISerializable gränssnittet och returnerar de data som behövs för att serialisera OrderedDictionary samlingen. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| Insert(Int32, Object, Object) |
Infogar en ny post i OrderedDictionary samlingen med den angivna nyckeln och värdet vid det angivna indexet. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnDeserialization(Object) |
Implementerar ISerializable gränssnittet och anropas tillbaka av deserialiseringshändelsen när deserialiseringen är klar. |
| Remove(Object) |
Tar bort posten med den angivna nyckeln från OrderedDictionary samlingen. |
| RemoveAt(Int32) |
Tar bort posten vid det angivna indexet OrderedDictionary från samlingen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICollection.IsSynchronized |
Hämtar ett värde som anger om åtkomsten OrderedDictionary till objektet synkroniseras (trådsäker). |
| ICollection.SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomsten OrderedDictionary till objektet. |
| IDeserializationCallback.OnDeserialization(Object) |
Implementerar ISerializable gränssnittet och anropas tillbaka av deserialiseringshändelsen när deserialiseringen är klar. |
| IDictionary.IsFixedSize |
Hämtar ett värde som anger om har OrderedDictionary en fast storlek. |
| IEnumerable.GetEnumerator() |
Returnerar ett IDictionaryEnumerator objekt som itererar genom OrderedDictionary samlingen. |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |