**
Die Reihenfolge der Auflistung Keys Element gespeichert wurde auf den Schlitz der Schlüssel des basiert. Der Slot, in dem ein Element gespeichert wird, hängt vom Hashwert und der Kollisionslösungsstrategie des Schlüssels ab.
**
Um ein Element aus der Hashtable abzurufen, können Sie Index der Hashtable durch den Schlüssel, wie nur würden Sie Index ein Array von einem Ordnungswert. Das folgende kurze C# -Programm demonstriert dieses Konzept. Es fügt einer Hashtable eine Anzahl von Elementen hinzu, indem jedem Element ein Zeichenfolgenschlüssel zugeordnet wird. Dann kann auf das bestimmte Element unter Verwendung seines Zeichenfolgenschlüssels zugegriffen werden.
mit System; mit System.Collections;
öffentliche Klasse HashtableDemo { private statische Hashtable-Mitarbeiter = neue Hashtable();
public static void Main()
{
// Add some values to the Hashtable, indexed by a string key
employees.Add("111-22-3333", "Scott");
employees.Add("222-33-4444", "Sam");
employees.Add("333-44-55555", "Jisun");
// Access a particular key
if (employees.ContainsKey("111-22-3333"))
{
string empName = (string) employees["111-22-3333"];
Console.WriteLine("Employee 111-22-3333's name is: " + empName);
}
else
Console.WriteLine("Employee 111-22-3333 is not in the hash table...");
}
} Dieser Code zeigt auch die ContainsKey() -Methode, die einen Boolean zurück, der angibt, ob eine bestimmte Taste in der Hashtable gefunden wurde. Die Hashtable-Klasse enthält eine Keys-Eigenschaft, die eine Auflistung der in der Hashtable verwendeten Schlüssel zurückgibt.Diese Eigenschaft kann verwendet werden, um die Elemente in einer Hashtable aufzuzählen, wie unten dargestellt:
// Schritt durch alle Elemente in der Hashtable foreach (string Schlüssel in employees.Keys) Console.WriteLine ("Value-at-Mitarbeitern [ \ "" + key + "\"] = "+ employees [key] .ToString()); Stellen Sie fest, dass die Reihenfolge, in der die Elemente eingefügt werden, und die Reihenfolge der Schlüssel in der Keys-Auflistung nicht unbedingt identisch sind. Die Reihenfolge der Keys-Auflistung basiert auf dem Steckplatz, in dem der Schlüssel gespeichert wurde. Der Slot, in dem ein Element gespeichert wird, hängt vom Hashwert und der Kollisionslösungsstrategie des Schlüssels ab. Wenn Sie den obigen Code ausführen, können Sie sehen, dass die Reihenfolge, in der die Elemente aufgelistet werden, nicht unbedingt mit der Reihenfolge übereinstimmt, mit der die Elemente zur Hashtabelle hinzugefügt wurden. Ausführen der oben genannten Code-Ausgänge:
Wert an Mitarbeiter [ "333-44-5555"] = Jisun Value at Mitarbeiter [ "111-22-3333"] = Scott Value at Mitarbeiter [ "222-33-4444 "] = Sam Obwohl die Daten in der Hashtable in der Reihenfolge" Scott "," Sam "," Jisun "eingefügt wurden.
http://msdn.microsoft.com/en-us/library/ms379571(v=vs.80).aspx
'' SortedDictionary nicht auf Insertion Reihenfolge sortiert ist, wird es auf dem Schlüssel unter Verwendung eines (optional) '' IComparer sortiert. –
LukeH
@LukeH, du hast vollkommen recht; hatte für eine Sekunde ein Hirn furzen. Bearbeitete Antwort, um das zu reflektieren. –