c#.net Compact Framework 3.5中最快的字典查找

Hai*_*ink 3 .net c# lookup dictionary compact-framework

我正在寻找最快的方法来查找List,Set,Dictionary是否包含特定的关键字(字符串).我不需要存储任何数据,我只想知道我的关键字是否在列表中.

我想到了一些可能性:

Dictionary<string, bool> myDictionary = new Dictionary<string, bool>();
if (myDictionary.ContainsKey(valueToSearch))
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

但我不需要价值.

string[] myArray = {"key1", "key2", "key3"}
if (Array.IndexOf(myArray, valueToSearch) != -1)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

然后我发现:

List<string> list = new List<string>();
if (list.Contains(valueToSearch))    
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

查找将经常发生,并且必须非常快.知道什么是检查某个值是否等于给定键列表之一的最快方法?

Jim*_*hel 8

标准的集合类型,Dictionary将是最快的,因为我认为你没有HashSet<T>在紧凑的框架中.另外两个进行顺序搜索.

  • @Justin:HashSet 在 CF 中不可用。 (2认同)