2011-09-11 19 views
0

哪个是最好的方式来查找是否存在一个关键字在C#SortedList?哪个是最好的方法来查找是否存在一个关键字在C#SortedList?

问题很明显,我有一个SortedList表示一个关联数组。键和值都是字符串。我正在考虑扫描线性,但二进制搜索更快,因为它是'分类'。

我不知道是否有一个标准的方式来找到这对钥匙,就像在MSDN或一些流行的地方指出的?

+0

偏题:我不明白你使用SortedList(list-type collection)做查找。如果需要非唯一键,您是否研究了Lookup类? http://msdn.microsoft.com/en-us/library/bb460184(v=VS.90).aspx –

+0

只是一种习惯,我不知道为什么我喜欢SortedList比其他Dictioanry ...通用...等等。 – jondinham

回答

5

ContainsKey是找出密钥是否存在的最佳方法。它已经进行了优化,也没有必要为你做一个自定义的搜索算法:

“此方法使用二进制搜索算法;因此,此 方法是O(log n)的操作,其中n是计数。”

+0

听起来比'Contains'更清晰,因为'Contains'是相当混乱的“关键或价值?”。虽然我刚刚在msdn中读过,但他们的行为完全一样:) tks :) – jondinham

相关问题