Мне нужно передать лямбда-выражение "где", которое будет использоваться в запросе LINQ внутри метода. Проблема в том, что я не знаю, с чем будет сравниваться значение where, пока не попаду в метод.
Теперь, чтобы объяснить далее и прояснить кое-что из того, что я сказал выше, я приведу немного надуманного примера.
Представьте, что у меня есть List<Products>
, и мне нужно сузить этот список до одной записи, используя свойство productId
объекта Products. Обычно я бы сделал это:
var product = productList.Where(p=>p.productId == 123).FirstOrDefault();
Теперь сделайте еще один шаг - мне нужно поместить вышеупомянутую логику в метод, который не ограничен List<Products>
, а вместо этого List<T>
, так что в идеале я бы назвал его так (и Я знаю, что нижеприведенное не сработает, это просто здесь, чтобы показать, чего я пытаюсь достичь):
myMethod(productList, p => p.productId == X)
С учетом того, что X неизвестен, пока я не внутри метода.
Наконец, для чего бы это ни стоило, я должен указать, что мой сбор данных - это OData DataServiceQuery
.
Итак, чтобы подвести итог моего вопроса: мне нужно знать, как создать лямбда-выражение «где», которое я могу передать в метод, и как использовать его для набора объектов в запросе LINQ.