【发布时间】:2021-07-09 05:55:17
【问题描述】:
示例 I 使用此代码,但此代码不更改字典中的值 更改字典中的自动更新值是可能的吗?
Dictionary<string, string> dic = new Dictionary<string, string>();
private void DoWork()
{
dic.Add("data", "example1");
dic.Add("data2", "example2");
if(dic.TryGetValue("data",out string c))
{
c = "Value Changed Good";
}
foreach (string s in dic.Values)
{
Console.WriteLine(s);
}
}
例如这个代码输出是一个
example1
example2
但是值没有改变例如如果值改变了这个输出也随之改变了
Value Changed Good
example2
【问题讨论】:
-
if (dic.ContainsKey("data")) dic["data"] = "Value Changed Good"; -
@DmitryBychenko,这不是最理想的,因为它需要 2 次查找,对吧?
-
@Sinatr:在普通的
Dictionary<K, V>的情况下,我们没有UpdateIfExist或类似的,并且必须执行2 查找(如果我们有一个好的散列,它不会那么昂贵)。如果是ConcurrentDictionary<K, V>,我们可以一次性修改
标签: c#