Предположим, у меня есть 3 списка (не более 10 в моем случае).C# быстрее конкатенировать списки, а затем фильтровать или фильтровать, а затем конкатенировать
List 1 has m elements
List 2 has n elements
List 3 has p elements
Возможно дублирование. Мне нужно найти 10 первых элементов, которые соответствуют запросу (я знаю, как это сделать, это не вопрос).
- Быстро ли объединить 3 списка, а затем фильтровать?
- Или быстрее фильтровать 3 списка (3x10 элементов), а затем объединить. И затем снова фильтруйте, чтобы иметь последние 10 элементов, которые я хотел.
Я бы выбрал второй вариант, но я не 100%, потому что я не знаю стоимость конкатенации и стоимость фильтрации.
Спасибо за любые входные данные.
Edit: я могу иметь до 10 списков 100-1000 элементов => от 1000 элементов до 10000 элементов в объединенном списке.
В моем случае этот запрос может быть сделан от 3 до 5 раз в секунду на пользователя (но только раз в то время). Списки содержат контакты, а иногда пользователь ищет контакт. У меня есть запрос ajax, который отправляет каждый символ и обновляет таблицу.
Do 'List1.Distinct(); List2.Distinct(); List3.Distinct(); 'для получения отдельных элементов из 3 списков – Karthik
Я могу иметь дубликаты в объединенном списке, а не в списках. – Daniel
Никто не сомкнул глаз, когда это было опубликовано: http: //stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array Я не вижу проблемы с ним он задал этот вопрос. Хотя этот вопрос был, очевидно, структурирован лучше, и он спросил «почему» не просто «есть». Они, по сути, и о производительности. – Adam