que necesito para pasar la consulta lambda como un parámetro, el código siguientes se muestra y yo soy interesante encontrar un implemento para ello, hay muestras: algo como esto:¿Hay alguna forma de pasar la expresión lambda como una variable o argumento?
var expr1 = Where(n => n > 6).OrderBy(n => n % 2 == 0).Select(n => n);
var expr2 = TakeWhile((n, index) => n >= index));
Y utilizar de esta manera :
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);
}
¿Alguien tiene una idea al respecto?
Hay un error en definir expr1, expr2: 'System.Collections.IEnumerable' no contiene una definición para y ningún método de extensión 'Dónde' aceptar un primer argumento de tipo System.Collections 'dónde''. IEnumerable 'podría encontrarse (¿falta una directiva using o una referencia de ensamblado?) – Saeid
necesita cambiar a: Func, ...... –
Saeid
Gracias por editar Saeid. – Samuel