如何更新值为一个特定的关键字在字典字典<字符串,int>?


当前回答

你也可以使用这个方法:

Dictionary<int,int> myDic = new();
if (myDic.ContainsKey(1))
{
    myDic[1] = 1234; // or use += to update it 
}

或按值:

if (myDic.ContainsValue(1))
{
    //do something ... 
}

其他回答

更新-修改只存在。为了避免使用索引器的副作用: int val; 如果(dic)。TryGetValue(key, out val)) { // key存在 Dic [key] = val; } 更新或(如果dic中不存在值,则添加新值) Dic [key] = val; 例如: d["Two"] = 2;//添加到字典中,因为“2”不存在 d["Two"] = 22;//更新字典,因为“two”现在存在

只需指向字典中给定的键并赋一个新值:

myDictionary[myKey] = myNewValue;

这可能对你有用:

场景1:基本类型

string keyToMatchInDict = "x";
int newValToAdd = 1;
Dictionary<string,int> dictToUpdate = new Dictionary<string,int>{"x",1};

if(!dictToUpdate.ContainsKey(keyToMatchInDict))
   dictToUpdate.Add(keyToMatchInDict ,newValToAdd );
else
   dictToUpdate[keyToMatchInDict] = newValToAdd; //or you can do operations such as ...dictToUpdate[keyToMatchInDict] += newValToAdd;

场景2:我用于List as Value的方法

int keyToMatch = 1;
AnyObject objInValueListToAdd = new AnyObject("something for the Ctor")
Dictionary<int,List<AnyObject> dictToUpdate = new Dictionary<int,List<AnyObject>(); //imagine this dict got initialized before with valid Keys and Values...

if(!dictToUpdate.ContainsKey(keyToMatch))
   dictToUpdate.Add(keyToMatch,new List<AnyObject>{objInValueListToAdd});
else
   dictToUpdate[keyToMatch] = objInValueListToAdd;

希望对需要帮助的人有用。

通过将键作为索引访问是可能的

例如:

Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary["test"] = 1;
dictionary["test"] += 1;
Console.WriteLine (dictionary["test"]); // will print 2

你也可以使用这个方法:

Dictionary<int,int> myDic = new();
if (myDic.ContainsKey(1))
{
    myDic[1] = 1234; // or use += to update it 
}

或按值:

if (myDic.ContainsValue(1))
{
    //do something ... 
}