Tengo un método que acepta un Expression<Func<T, bool>>
como parámetro. Me gustaría usarlo como un predicado en el método List.Find(), pero parece que no puedo convertirlo en un Predicado que toma la Lista. ¿Conoces una manera simple de hacer esto?Cómo convertir una expresión <Func <T, bool>> a un Predicado <T>
public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new()
{
var list = GetList<T>();
var predicate = [what goes here to convert expression?];
return list.Find(predicate);
}
actualización
Combinando las respuestas de tvanfosson y 280Z28, ahora estoy usando esto:
public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new()
{
var list = GetList<T>();
return list.Where(expression.Compile()).ToList();
}
perfecto! ¡Gracias! –
O bien: pred = func.Invocar; –
Sí, func.Invoke se ve mejor. –