You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅需校验键是否存在时,Dictionary的更优替代方案探讨

替代Dictionary<Key, bool>做键存在校验的高效方案

当你只需要校验键是否存在、不需要存储对应值时,**HashSet**是最适合的替代方案——它专门设计用于存储唯一元素并快速执行存在性检查,完全避免了无用值的内存浪费。

核心优势

  • 仅存储键本身,不附带冗余的value字段,在大数量场景(如10万条数据)下能显著节省内存
  • Contains方法的时间复杂度为O(1),性能和Dictionary.ContainsKey持平,不会牺牲查询效率
  • 提供和Dictionary类似的添加、删除、检查操作,学习成本低

替换后的代码示例

HashSet<int> idsToInclude = new HashSet<int>();

// 添加需要跟踪的ID
idsToInclude.Add(5);
idsToInclude.Add(2);
idsToInclude.Add(3);

// 后续检查ID是否存在
int id = 5;
if (idsToInclude.Contains(id))
{
    // 执行包含时的业务逻辑
}

额外说明

如果需要从现有集合(如List)初始化HashSet,直接通过构造函数转换即可:

List<int> existingIds = new List<int> {5,2,3};
HashSet<int> idsToInclude = new HashSet<int>(existingIds);

内容的提问来源于stack exchange,提问作者Moe Sisko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:07:06