我有一个未排序的字符串列表。我可以将这些项目放入数组、列表、排序列表等中。
我需要找到在此列表中查找字符串的最快方法。我是否最好将列表转储到数组中,对其进行排序,然后实现二分搜索?或者框架是否提供了一种方法来做到这一点?
Thanks
附:针对 .NET 2.0 使用 VS2008
如果您的目标只是快速查找集合中的字符串,请将它们放入HashSet http://msdn.microsoft.com/en-us/library/bb359438.aspx.
HashSet.包含 http://msdn.microsoft.com/en-us/library/bb356440.aspx是一个 O(1) 方法,并且字符串默认具有良好的哈希算法,因此很难制作比这更快的例程。
Edit:
既然你使用的是.NET 2,我就这样做Dictionary<string,string>
并使用相同的字符串作为键和值。Dictinoary<TKey,TValue>.Contains
也是 O(1),并且比您尝试的任何基于列表的搜索要快得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)