What .NET collection provides the fastest search
.net, c#, collections, search
Solution
In the most general case, consider `System.Collections.Generic.HashSet` as your default "Contains" workhorse data structure, because it takes constant time to evaluate `Contains`.
The actual answer to "What is the fastest searchable collection" depends on your specific data size, ordered-ness, cost-of-hashing, and search frequency.
Problem
I have 60k items that need to be checked against a 20k lookup list. Is there a collection object (like `List`, `HashTable`) that provides an exceptionly fast `Contains()` method? Or will I have to write my own? In otherwords, is the default `Contains()` method just scan each item or does it use a better search algorithm. ``` foreach (Record item in LargeCollection) { if (LookupCollection.Contains(item.Key)) { // Do something } } ``` Note. The lookup list is already sorted.