Как то так?
public List<String> FindString(List<String> list, Func<String, bool> predicate)
{
return list.Where(predicate).ToList();
}
Почему вы используете выражение ?, если вы хотите использовать его, вам нужно скомпилировать его раньше, но если вы не хотите делать некоторые манипуляции с выражением в вашем методе, я бы посоветовал использовать вышеизложенное (или напрямую использовать .Where()
метод расширения linq)
public List<String> FindString(List<String> list, Expression<Func<String, bool>> predicate)
{
var lambda = predicate.Compile();
return list.Where(lambda).ToList();
}