Jak zaktualizować wartość dla określonego klucza w słowniku Dictionary<string, int>
?jak zaktualizować wartość przechowywaną w słowniku w języku C#?
Odpowiedz
Tylko punkt do słownika na dany klucz i przypisać nową wartość:
myDictionary[myKey] = myNewValue;
Jest to możliwe dzięki dostępowi do klucza jako indeks
na przykład:
Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary["test"] = 1;
dictionary["test"] += 1;
Console.WriteLine (dictionary["test"]); // will print 2
Jeśli na liście nie ma pozycji "test", wówczas lista ["test"] = lista ["test"] + 1; podniesie KeyNotFoundException! Będzie działał czysty przydział nieistniejącego indeksera. lista ["test"] = 1; –
Czy możesz również użyć listy ["test"] ++ ;? – aufty
Nie dzwoń na listę słowników, nazwij to psami lub kotami albo wymów: – user3800527
Tutaj to sposób na aktualizację przez indeks podobny do foo[x] = 9
gdzie x
jest kluczem, a 9 jest wartością
var views = new Dictionary<string, bool>();
foreach (var g in grantMasks)
{
string m = g.ToString();
for (int i = 0; i <= m.Length; i++)
{
views[views.ElementAt(i).Key] = m[i].Equals('1') ? true : false;
}
}
m [i] .Equals ("1") już ocenia bool, więc dodajesz? true: false nie jest konieczne –
Nie wiem, jak efektywna jest ta logika, ale podoba mi się idea pętli For. :) –
Możesz śledzić to podejście:
void addOrUpdate(Dictionary<int, int> dic, int key, int newValue)
{
int val;
if (dic.TryGetValue(key, out val))
{
// yay, value exists!
dic[key] = val + newValue;
}
else
{
// darn, lets add the value
dic.Add(key, newValue);
}
}
Krawędź można uzyskać tutaj jest to, że sprawdzić i uzyskać wartość odpowiadającą klucz w ciągu zaledwie 1 dostępem do słownika. Jeśli używasz ContainsKey
, aby sprawdzić istnienie i zaktualizować wartość za pomocą dic[key] = val + newValue;
, wówczas uzyskujesz dostęp do słownika dwa razy.
Zamiast 'dic.Add (key, newValue); możesz użyć' dic [key] = newvalue; '. – Macke
Co stanie się, jeśli zrobisz "dic [klucz] = wartość" i "klucz" nie istnieje? – superpuccio
@superpuccio otrzymasz KeyNotFoundException – ntroncos
używać LINQ: Dostęp do słownika na klucz i zmienić wartość
Dictionary<string, int> dict = new Dictionary<string, int>();
dict = dict.ToDictionary(kvp => kvp.Key, kvp => kvp.Value + 1);
Nie rozumiem nawet, jak to działa, ale to jest niesamowite – hexagonest
Tworzenie kolejnego słownika nie ma dla mnie sensu w tak prostej rzeczy. Sprawdź odpowiedź ccalboni. – RollerCosta
Myślę, że to dobra odpowiedź. nie wymaga znajomości każdego ciągu kluczy –
- 1. Jak zaktualizować wartość klucza w słowniku wC#?
- 2. Jak zmodyfikować klucz w słowniku w języku C#
- 3. Jak zaktualizować program querystring w języku C#?
- 4. Jak zaktualizować zawartość DOM w kontrolce WebBrowser w języku C#?
- 5. Jak zaktualizować wszystkie wartości w Słowniku <ciąg, bool>
- 6. Jak znaleźć maksymalną wartość w słowniku Swift?
- 7. Jak uzyskać losową wartość w słowniku Pythona
- 8. Jak zaktualizować obiekt na liście <> w języku C#
- 9. Scalanie klucz-wartość par w słowniku
- 10. Jak ustawić pythonowo wartość w słowniku, jeśli ma wartość None?
- 11. wartość Dołącz do jednej listy w słowniku dołącza wartość wszystkich list w słowniku
- 12. Odwracanie kolejności par klucz-wartość w słowniku (Python)
- 13. Jak zaktualizować wartość tablicy w Mongoose
- 14. Jak zaktualizować wartość zagnieżdżonego obiektu w reduktorze?
- 15. Jak zaktualizować wartość zmiennej w xslt?
- 16. C++ słowniku priorytet
- 17. Jak atomicznie zaktualizować maksymalną wartość?
- 18. Jak uzyskać wartość wyliczenia z ciągu znaków w języku C#?
- 19. Jak uzyskać wartość dla każdego klucza w słowniku w Objective-C?
- 20. Jak sprawdzić, czy wartość istnieje w słowniku (python)
- 21. Jak znaleźć wartość za pomocą klucza w słowniku javascript
- 22. Objective-C: Jak umieścić wartości boolowskie w słowniku JSON?
- 23. Komentarze w języku Python Błąd przy użyciu "" "lub" "w słowniku
- 24. nieskończoną wartość frakcji w sql kolumnie zapytań w języku C#
- 25. Czy wartość w słowniku w Pythonie może mieć dwie wartości?
- 26. cel-c: Jak zaktualizować obiekt w NSMutableArray?
- 27. Jak zaktualizować wartość określonego klucza w tablicy asocjacyjnej w PHP?
- 28. Jak zaktualizować wartość modelu w JavaScript w widoku maszynki Razor?
- 29. Aktualizacja metoda w słowniku Pythona
- 30. Liczba pythonów w słowniku list.
ta powinna być odpowiedź na pytanie !!! –
Ta prosta metoda wydaje się być lepszym zamiennikiem dobrze znanej metody ".Add" i ".TryGetValue" bez konieczności zmiany wartości. (?) Przynajmniej, jeśli nie ma znaczenia nadpisywanie kluczy, na przykład w sytuacji, gdy nie jest wykluczone, że klucze są zapisywane więcej niż jeden raz w pętli. A może ktoś widzi jakieś wady? Zwłaszcza, że .Add ma plik ptifall dla początkujących, że jeśli zapomni się if-wrapper lub TryGetValue, może to działać dobrze w testach iz innymi danymi testowymi, gdzie adres .Add jest wywoływany dwa razy dla tego samego klucza, który wyrzuci wyjątek. – Philm
Interesującym punktem tej operacji jest to, że UPSERT (klucz, wartość) do słownika. znakomity! – Soren