Nad*_*zie 10
有几个用例允许调用者提供返回true或的函数false.该Predicate<T>类型是一个办法做到这一点.这没有什么不同Func<T, bool>(除了Predicate<T>在早期版本的C#中可用).
一个简单的(和人为的例子):
string[] strings = new string[] { "hello", "goodbye", "how are you" };
Array.FindAll(strings, delegate(string s)
{
return s.StartsWith("h");
});
Run Code Online (Sandbox Code Playgroud)
或者,lambda风格:
Array.FindAll(strings, s => s.StartsWith("h"));
Run Code Online (Sandbox Code Playgroud)
该FindAll方法返回与条件匹配的所有项的数组.在这种情况下,所有以"h"开头的字符串.该Predicate是s.StartsWith("h").
这里有用的是,Array类知道如何搜索其所有元素,并创建一个只包含匹配元素的新数组.算法的这一部分对于许多代码是通用的.不常见的部分是匹配标准,它将根据特定代码段的要求而变化.因此调用者指定逻辑的一部分,并将其作为a传递Predicate.
您可以以"嵌套"样式处理它. Func<Predicate<T>>表示您正在声明一个返回a的函数Predicate<T>.你确定这是你想要的吗?你想要实现什么目标?
| 归档时间: |
|
| 查看次数: |
3583 次 |
| 最近记录: |