Mam 60k elementów, które należy sprawdzić na liście wyszukiwania 20k. Czy istnieje obiekt kolekcji (np. List
, HashTable
), który zapewnia wyjątkowo szybką metodę Contains()
? Czy będę musiał napisać własną? Innymi słowy, jest domyślna metoda Contains()
po prostu przeskanować każdy element lub używa lepszego algorytmu wyszukiwania.Co kolekcja .NET zapewnia najszybsze wyszukiwanie
foreach (Record item in LargeCollection)
{
if (LookupCollection.Contains(item.Key))
{
// Do something
}
}
Uwaga. Lista odnośników jest już posortowana.
Zawartość listy nie działa dla listy obiektów, ponieważ porównuje odwołania. – Fiur
Posortowane dane? Wyszukiwanie binarne - patrz @ Odpowiedź Marka. –
HashtTable bije nic do 2m elementów w moim doświadczeniu –