dav*_*ove 4 c# delegates predicate
如果没有传递谓词,如何将谓词传递给方法,又如何使谓词起作用?我以为也许是这样,但这似乎并不正确。
private bool NoFilter() { return true; }
private List<thing> GetItems(Predicate<thing> filter = new Predicate<thing>(NoFilter))
{
return rawList.Where(filter).ToList();
}
Run Code Online (Sandbox Code Playgroud)
private List<thing> GetItems(Func<thing, bool> filter = null)
{
return rawList.Where(filter ?? (s => true)).ToList();
}
Run Code Online (Sandbox Code Playgroud)
在此表达式中s => true是回退过滤器,如果参数filter为null ,则会对其进行评估。它只获取列表的每个条目(如s)并返回true。
| 归档时间: |
|
| 查看次数: |
7328 次 |
| 最近记录: |