У меня есть DataTable/collection, который кэшируется в памяти, я хочу использовать это как источник для генерации результатов для автоматического полного текстового поля (с использованием AJAX, конечно). Я оцениваю различные варианты быстрого извлечения данных. Количество элементов в коллекции/строках в datatable может варьироваться от 10000 до 2 000 000. (Чтобы мы не отвлекались, на данный момент предполагаем, что решение принято, у меня достаточно ОЗУ, и я буду использовать кэш, а не запрос базы данных для этого)
У меня есть дополнительная бизнес-логика для этой обработки; Я должен определить приоритет для автоматического полного списка в соответствии с столбцом priority
(int) в коллекции. Поэтому, если я кто-то ищет Micro
, и я получаю 20 результатов слов/предложений, начинающихся с Micro
, тогда я бы выбрал 10 лучших результирующих элементов с наивысшим приоритетом. (следовательно, необходимо иметь свойство приоритета, связанное со строковым значением).
Элементы коллекции уже отсортированы в алфавитном порядке.
Что было бы лучшим решением в этом случае.
1. Использование DataTable.Select(.
2. Использование DataTable.Rows.Find(.
3. используйте пользовательскую коллекцию с foreach или для повторения своих значений.
4. используйте общую коллекцию с анонимными делегатами или lambda (поскольку оба дают такую же производительность или не?)