Dictionary是记录是否存在密钥的最佳方式吗

本文关键字:最佳 方式吗 密钥 存在 记录 是否 Dictionary | 更新日期: 2023-09-27 18:25:07

如果其他地方已经问过这个问题,但我找不到,我很抱歉。

我想在.NET中存储一组字符串,这样就可以轻松快速地查找它们,以确定是否存储了密钥。

我可以使用List<string>并在每次需要搜索时枚举列表,但显然线性搜索效率很低。

所以我的下一个想法是使用字典<string、object>和每次查询,这将有望带来一些很酷的字符串哈希和更快的搜索时间。然而,我实际上并没有在字典的"对象"部分存储任何内容,所以看起来可能存在效率低下的问题。

有更好的方法吗?

Dictionary是记录是否存在密钥的最佳方式吗

您正在寻找一个HashSet<string>,它提供与字典相同的O(1)性能,但没有那些讨厌的值。

HashSet<string>用于无序集或
如果订单很重要,则为SortedSet<string>

如果多个线程正在使用字典对象,ConcurrentDictionary(Of TKey,TValue)是更好的选择。