我知道 C# 中没有对“struct”变量的引用
,但在这种情况下它会派上用场
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++;
关于c# - 防止在字典中重复查找相同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748423/