我有一个类似于以下内容的存储库。我使用Func
传递lambda表达式,但我不知道该怎么做。
public IEnumerable<T> SelectAll(Expression<Func<T, bool>> predicate)
{
return table.ToList();
}
在控制器中,我想通过lambda传递条件,如下所示,但我不知道如何:
var rslt = _repository.SelectAll(s=>s.Name="Jack" && s.Time==Date.Now())
我应该如何传递这样的lambda,以上的lambda不正确?
答案 0 :(得分:2)
将其传递给.Where()
:
public IEnumerable<T> SelectAll(Expression<Func<T, bool>> predicate)
{
return table.Where(predicate).ToList();
}
答案 1 :(得分:0)
加入扩展
public static class Extensions
{
public static IEnumerable<T> SelectAll<T>(this IEnumerable<T> items, Func<T, bool> predicate)
{
return items.Where(predicate);
}
}
示例:
List<int> items = new List<int>() {1,2,3,4,5 };
var result = items = items.SelectAll(x => x > 1 && x < 5);