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.

Original source