字典是记录密钥存在与否的最佳方式

时间:2012-02-20 15:27:20

标签: c# dictionary key

道歉,如果已经在其他地方问过,但我找不到它。

我想在.NET中存储一组字符串,以便可以轻松快速地查找它们以查找密钥是否已存储。

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

所以我的下一个想法是使用Dictionary< string,object>并且每次查询,这应该有希望导致一些很酷的字符串哈希和更快的搜索时间。但是,我实际上并没有将任何东西存储在字典的“对象”部分中,因此看起来似乎效率低下。

有没有更好的方法呢?

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:2)

HashSet<string>无序集或
如果订单是重要的,则SortedSet<string>

答案 2 :(得分:0)

如果您的词典对象被多个线程使用,则ConcurrentDictionary(Of TKey,TValue)是更好的选择。