Предположим, у меня есть List<T>
с 1000 элементами.
Затем я передаю это методу, который фильтрует этот список. По мере прохождения различных случаев (например, их может быть 50) над List<T>
может выполняться до 50 различных операций Linq Where()
.
Я заинтересован в том, чтобы эта работа прошла как можно быстрее. Поэтому я не хочу, чтобы это List<T>
фильтровалось каждый раз, когда над ним выполняется Where()
.
По сути, мне нужно отложить фактическое манипулирование List<T>
до тех пор, пока не будут применены все фильтры.
Это делается изначально компилятором? Или только когда я вызываю .ToList() для IEnumerable, который возвращает List<T>.Where()
, или я должен выполнять операции Where()
над X (где X = List.AsQueryable())?
Надеюсь, это имеет смысл.