我有一个如下所示的存储库。我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 不正确?
2 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
传递给.Where():
public IEnumerable<T> SelectAll(Expression<Func<T, bool>> predicate)
{
return table.Where(predicate).ToList();
}
喵喵时光机
TA贡献1846条经验 获得超7个赞
放入扩展名
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);
- 2 回答
- 0 关注
- 283 浏览
添加回答
举报
0/150
提交
取消