I have an unsorted list of strings. I can place these items in an array, List, SortedList, whatever.
I need to find the fastest way of looking up a string in this list. Am I better off dumping the list into an array, sorting it, then implementing binary search? Or does the framework provide a way to do this?
Thanks
P.S. Using VS2008 against .NET 2.0
If your goal is just to make it very fast to find the strings in a collection, put them into a HashSet.
HashSet.Contains is an O(1) method, and strings have a good hash algorithm by default, so it will be difficult to make a faster routine than this.
Edit:
Since you're using .NET 2, I would just do Dictionary<string,string>
and use the same string for key and value. Dictinoary<TKey,TValue>.Contains
is also O(1), and will be much faster than any list-based searching you attempt.