Jak zaktualizować wartość określonego klucza w słowniku Dictionary<string, int>
?
c#
dictionary
Amit
źródło
źródło
Odpowiedzi:
Wystarczy wskazać słownik na dany klucz i przypisać nową wartość:
źródło
Jest to możliwe, uzyskując dostęp do klucza jako indeksu
na przykład:
źródło
++dictionary["test"];
lubdictionary["test"]++;
ale tylko wtedy, gdy istnieje wpis w słowniku z wartości klucza „test” - przykład:if(dictionary.ContainsKey("test")) ++dictionary["test"];
else dictionary["test"] = 1; // create entry with key "test"
Możesz zastosować to podejście:
Zaletą jest to, że sprawdzasz i uzyskujesz wartość odpowiedniego klucza w zaledwie 1 dostępie do słownika. Jeśli użyjesz,
ContainsKey
aby sprawdzić istnienie i zaktualizować wartość za pomocądic[key] = val + newValue;
, uzyskujesz dwukrotnie dostęp do słownika.źródło
dic.Add(key, newValue);
ciebie możesz użyćdic[key] = newvalue;
.Użyj LINQ: Dostęp do słownika dla klucza i zmień wartość
źródło
Oto sposób aktualizacji według indeksu, podobnie jak
foo[x] = 9
gdziex
jest klucz, a 9 to wartośćźródło
aktualizacja - modyfikuj tylko istniejące. Aby uniknąć skutków ubocznych używania indeksatora:
zaktualizuj lub (dodaj nowy, jeśli wartość nie istnieje w trybie dic)
na przykład:
źródło
To może Ci pomóc:
Scenariusz 1: typy pierwotne
Scenariusz 2: Podejście zastosowane w przypadku Listy jako wartości
Mam nadzieję, że jest to przydatne dla kogoś, kto potrzebuje pomocy.
źródło