Jon*_*ood 25 .net c# collections
我需要一个字符串列表和一种快速确定字符串是否包含在该列表中的方法.
为了提高查找速度,我认为SortedList
和Dictionary
; 但是,KeyValuePair
当我需要的只是一个时,两者都可以使用string
.
我知道我可以使用a KeyValuePair
而忽略该Value
部分.但我更喜欢高效,我只是想知道是否有更适合我要求的系列.
Jon*_*eet 33
如果您使用的是.NET 3.5或更高版本,请使用HashSet<String>
.
如果失败了,a Dictionary<string, byte>
(或者你想要TValue
类型参数的任何类型)会比SortedList
你有很多条目更快- 后者将使用二进制搜索,所以它将是O(log n)查找,而不是O(1).
这听起来像是一份工作
var keys = new HashSet<string>();
Run Code Online (Sandbox Code Playgroud)
每个MSDN:包含函数具有O(1)复杂度.
但是你应该知道,添加时它不会给重复项带来错误.