【问题标题】:Update Item in Hashset更新哈希集中的项目
【发布时间】:2016-09-20 03:13:29
【问题描述】:

有没有办法更新哈希集中的项目。我有一个用户哈希集,我想更新 connectionId 字段。

我应该执行以下操作:

  1. 检索项目,进行必要的更新
  2. 从哈希集中删除项目
  3. 再次添加

【问题讨论】:

    标签: c# hashset


    【解决方案1】:

    只要您不修改项目的哈希码,您就可以在不删除项目的情况下更新项目。 如果您的修改更改了哈希码,您需要将其删除并再次添加以使哈希码保持最新。

    【讨论】:

    • 确实;进一步的解决方案是使对象可变。
    • 谢谢,我会试试的
    【解决方案2】:

    Hashset 的主要目的是:它以一种让您轻松快速确定对象是否已经存在的方式保存一组对象在集合与否

    为了达到这个目的,它牺牲了一些允许你操纵其内容的能力。

    您可以考虑使用不同类型的集合或通过使用具有相同类型的键和值的字典来解决此问题。

    【讨论】:

    • 它“牺牲一些部分来实现其目的”的说法具有误导性。我采用了 .net 标准哈希集并对其进行了修改,以允许通过自定义 AddOrReplace() 方法进行修改。代码更改很小,对存储机制或性能的影响为零。事实是 .net 内置的 hashset 是没有理由的不必要的不​​灵活。它的设计很糟糕。
    猜你喜欢
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多