Edit2:
После того, как я наконец смог профилировать их друг против друга, кажется, что в моей ситуации .AsQueryable () немного быстрее, чем Expression.Compile ().
Оригинальный вопрос:
Я реализовал кеш некоторых таблиц базы данных (например, List<T>
), которые мне нужно запрашивать с тем же Expression<Func<T, bool>>
, который я использовал бы при запросе к самому Table<T>
.
Какой самый быстрый / лучший способ из них:
List<T>.AsQueryable().FirstOrDefault(Expression<Func<T, bool>>)
или
List<T>.FirstOrDefault(Expression<Func<T, bool>>.Compile())
Edit:
Изменено Где на FirstOrDefault, так как это метод, который я использую. Думаю, я немного устал, когда писал вопрос. Будет ли FirstOrDefault проверять каждый элемент, например «Где», или он останавливается при первом попадании (если есть)?