最佳查找数据结构,仅存储密钥(无值的字典)

.Net中具有高性能查找的最佳数据结构是什么,如二叉树实现,但只存储密钥(字符串键)?

我们只需要检查集合中是否存在某个键。 喜欢:

Dictonary myKeys; myKeys.Add("key1", null); myKeys.Add("key2", null); // Dozens or hundreds keys Assert.IsTrue(myKeys.Contains("key1")); 

HashSet (在System.Collections.Generic ):

HashSet是一个包含唯一元素的无序集合。 它具有标准的集合操作Add,Remove,Contains,但由于它使用基于散列的实现,因此这些操作是O(1)。

例如

  HashSet evenNumbers = new HashSet(); HashSet oddNumbers = new HashSet(); for (int i = 0; i < 5; i++) { // Populate numbers with just even numbers. evenNumbers.Add(i * 2); // Populate oddNumbers with just odd numbers. oddNumbers.Add((i * 2) + 1); } if (evenNumbers.Contains(2)) { Console.WriteLine("2 is even."); } 
  • 介绍HashSet
  • HashSet与List性能