防止在字典中重复查找同一元素
Prevent double lookup of the same element in Dictionary
我知道在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++;
我知道在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++;