2012-04-12 6 views
17

Mam następujący kod w języku C#, w zasadzie jest to prosty słownik z niektórymi kluczami i ich wartości.Jak zaktualizować wartość klucza w słowniku wC#?

Dictionary<string, int> dictionary = 
    new Dictionary<string, int>(); 
dictionary.Add("cat", 2); 
dictionary.Add("dog", 1); 
dictionary.Add("llama", 0); 
dictionary.Add("iguana", -1); 

Chcę zaktualizować klucz 'kot' z nową wartością .
Jak mogę to zrobić?

+0

Naprawdę? Czy najpierw wypróbowałeś google/bing/prefered-search-engine? – sovanesyan

+1

Zrobiłem i to był pierwszy rezultat! droga do bycia konstruktywnym! –

Odpowiedz

30

Czy próbowałeś tylko

dictionary["cat"] = 5; 

:)

Aktualizacja

dictionary["cat"] = 5+2; 
dictionary["cat"] = dictionary["cat"]+2; 
dictionary["cat"] += 2; 

Strzeż nieistniejących klawiszy :)

+0

wowwwww !!!!!! to działa . Dzięki @JOHN –

+0

, ale co jeśli chcę dodać nową wartość do istniejącej wartości? –

+0

@AhsanAshfaq, co dokładnie masz na myśli, mówiąc "dodaj do istniejącego"? – walther

0

Wystarczy użyć podziałowe i aktualizować bezpośrednio:

dictionary["cat"] = 3 
15

Spróbuj prostą funkcję do słownika dodać element, jeśli nie istnieje lub gdy istnieje aktualizacja:

public void AddOrUpdateDictionaryEntry(string key, int value) 
    { 
     if (dict.ContainsKey(key)) 
     { 
      dict[key] = value; 
     } 
     else 
     { 
      dict.Add(key, value); 
     } 
    } 

To jest taka sama jak dict [key] = wartość.

+2

To jest to samo, co 'dict [key] = value' w jednym wierszu. Również nazwałbym funkcję 'AddOrUpdate' – nawfal

+0

@nawfal Nie są one takie same, różnica polega na tym, że najpierw sprawdza klucz. Jeśli istnieje, dodaje nową wartość, jeśli nie tworzy nowego wpisu. Dobry punkt nazwy funkcji. – cubski

+2

, który jest taki sam, jak 'dict [key] = value' .. Jak myślisz, co robi' dykt [key] = value'? – nawfal

0

Słownik jest parą kluczowej wartości. Złap Key przez

dic["cat"] 

i przypisać jej wartość jak

dic["cat"] = 5