我有一个方法。
如果可能的话,我想添加一些标准过滤,另外通过func变量:
.Where(p => p.IsLive)
我当然可以在函数字符串本身中传递它,但是,我需要记住每次都这样做。我已经尝试了各种方法将它与func变量合并,但还没有设法破解语法(如果可能的话)。有什么建议吗?
Product GetProduct(Func<Product, bool> func)
{
return CompareView.Select()
.Where(func) // Need to add std filtering here
.FirstOrDefault();
}
答案 0 :(得分:6)
最简单的方法就是将另一个调用链接到Where
:
Product GetProduct(Func<Product, bool> func)
{
return CompareView.Select()
.Where(p => p.IsLive)
.Where(func)
.FirstOrDefault();
}
你可以创建一个像这样的新代表:
Product GetProduct(Func<Product, bool> func)
{
return CompareView.Select()
.Where(p => p.IsLive && func(p))
.FirstOrDefault();
}
......但我个人并不认为这与where-composition方法一样简单。