c# - 防止在字典中重复查找相同元素

标签 c# dictionary

我知道 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/

相关文章:

c# - SAX 与 XmlTextReader - C# 中的 SAX

c# - 很好的异常处理

javascript - 如何仅在特定查询字符串上显示 div 元素?

python - 从字典列表中删除重复项会引发异常吗?

c# - 如何加入两个词典?

python - 如何返回多字典的键值?

json - 将 json 数据更改为 Angular 2 中的 Typescript 接口(interface)对象

c# - NoSQL数据库中的架构迁移脚本

c# - 重写渲染方法的问题

python - 如何删除值为 0 的键,同时扫描字典以搜索值为 0 的键?