Mam DataTable/kolekcja, która jest buforowana w pamięci, chcę użyć tego jako źródło do generowania wyników dla automatycznego uzupełniania pola tekstowego (oczywiście przy użyciu AJAX). Oceniam różne opcje szybkiego pobierania danych. Liczba pozycji w kolekcji/wierszach w datatable może się różnić od 10000 do 2 000 000. (Abyśmy nie zostali przekierowani, na razie zakładamy, że decyzja została podjęta, mam wystarczającą ilość pamięci RAM i będę używać pamięci podręcznej, a nie zapytania do bazy danych)DataTable.Select vs DataTable.rows.Find vs foreach vs Find (Predicate <T>)/Lambda
Mam dodatkową logikę biznesową dla tego przetwarzania ; Muszę nadać priorytet liście autouzupełniania zgodnie z kolumną priority
(int) w kolekcji. Więc jeśli ktoś szuka Micro
i otrzymuję 20 wyników słów/zdań, które zaczynają się od Micro
, wtedy wybrałbym 10 najbardziej wypadkowych przedmiotów o najwyższym priorytecie. (stąd potrzeba posiadania właściwości priorytetowej związanej z wartością ciągu znaków).
Elementy kolekcji są już posortowane alfabetycznie.
Jakie byłoby najlepsze rozwiązanie w tym przypadku.
1. Za DataTable.Select (.
2. Using DataTable.Rows.Find(.
3. Zastosowanie zwyczaj Odbiór foreach or for iterację jego wartości.
4. Zastosowanie ogólny zbiór z anonymous delegates lub lambda (since both give same performance lub not?)
Sprawdzam tylko, czy ktoś już "tam był". –
Jeśli wykonasz test porównawczy, daj nam znać! Jestem ciekaw, co znajdziesz. –