Мне нужно передать запрос лямбды в качестве параметра, код нижеуказанных является образцом, и я интересно найти орудие для него, есть образцы: некоторые вещи, как это:Есть ли способ передать лямбда-выражение как переменную или аргумент?
var expr1 = Where(n => n > 6).OrderBy(n => n % 2 == 0).Select(n => n);
var expr2 = TakeWhile((n, index) => n >= index));
и использовать его, как это :
public void UseLambda<T> (IEnumerable<T> source , lambda Expr){
var items= Expr.Compile(source);
foreach(var item in items)
Console.Writeline(item.ToString());
}
public void Main(){
List<int> numbers = new List<int> { 10, 24, 9, 87, 193, 12, 7, 2, -45, -2, 9 };
var expr1 = Where(n => n > 6).OrderBy(n => n % 2 == 0).Select(n => n);
UseLambda(numbers, expr1);
}
Есть ли у кого-нибудь есть идеи?
Существует ошибка в определения Expr1, expr2: «System.Collections.IEnumerable» не содержит определения для «где» и не метод расширения "Где принимать первый аргумент типа«System.Collections. IEnumerable '(вам не хватает директивы using или ссылки на сборку?) – Saeid
необходимо изменить на: Func, ...... –
Saeid
Спасибо за редактирование Saeid. – Samuel