防止在字典中重复查找同一元素
本文关键字:查找 元素 字典 | 更新日期: 2023-09-27 18:36:03
我知道 C# 中没有reference to "struct" variable
,但在这种情况下它会派上用场
Dictionary<int, int> d = new Dictionary<int, int>();
d.Add(1, 1);
++d[1];
++d[1];
如何在不使用两次operator[]
的情况下对同一元素执行 2 个操作(在本例中为增量)(以防止双重查找)?
您可以创建一个包装另一个值的可变引用类型,在本例中为不可变值类型,允许包装器的值发生变化:
public class Wrapper<T>
{
public T Value { get; set; }
}
这使您可以编写:
Dictionary<int, Wrapper<int>> d = new Dictionary<int, Wrapper<int>>();
d.Add(1, new Wrapper<int>(){Value = 1});
var wrapper = d[1];
wrapper.Value++;
wrapper.Value++;