Ich versuche, eine Liste von Wörterbüchern als Wert eines anderen Wörterbuchs zu erstellen.Wie kann ich eine Liste von Wörterbüchern als Wert eines anderen Wörterbuchs erstellen?
Ich mag im Grunde Daten speichern, wie dies
userPrivileges ["foo"]["a"] = 4;
userPrivileges ["foo"]["b"] = 8;
userPrivileges ["foo"]["c"] = 16;
userPrivileges ["bar"]["a"] = 4;
Hier ist, was ich versuchte
Dictionary<string, List<Dictionary<string, int>>> userPrivileges = new Dictionary<string, List<Dictionary<string, int>>>();
Um einen Schlüssel in der Wörterbuchliste hinzufügen oder aktualisieren wir die folgende Methode verwenden
protected void AddOrUpdateUserPrivilege(string moduleName, string key, int value)
{
if (!this.userPrivileges.ContainsKey(moduleName))
{
var entry = new Dictionary<string, int>(key, value);
this.userPrivileges.Add(moduleName, entry);
}
else
{
this.userPrivileges[moduleName][key] |= value;
}
}
Hier ist ein Screenshot der Syntaxfehler
Wie kann ich einen neuen Eintrag zum Hauptverzeichnis hinzufügen? und wie kann ich auf den Wert eines Wörterbuchs in der Liste zugreifen/aktualisieren?
Vielen Dank für Ihre Hilfe bei diesem. Nach der Aktualisierung des Codes mit Ihrem Vorschlag wurden die Syntaxfehler anders gelöst. Aber wenn ich es ausführe, erhalte ich den folgenden Fehler: Eine Ausnahme des Typs 'System.Collections.Generic.KeyNotFoundException' ist in mscorlib.dll aufgetreten, wurde aber nicht im Benutzercode behandelt. Zusätzliche Informationen: Der angegebene Schlüssel war nicht im Wörterbuch vorhanden . 'Der Fehler zeigt auf diese Zeile' this.userPrivileges [ModulName] [Schlüssel] | = Wert; ' –
@MikeA Das passiert, weil' Schlüssel' in Ihrem Wörterbuch nicht existiert. Sie müssen auch überprüfen, ob 'if (userPrivileges [moduleName] .ContainsKey (key)) ' – Rob
Richtig! Vielen Dank für Ihre Hilfe :) –