我正在尝试创建一个重载的 Add 方法作为 OrderedDictionary 类的扩展,并希望基于一些 curried 谓词添加键/值。
调用代码如下所示:
OrderedDictionary dict = new OrderedDictionary();
Predicate<int> lessThan5 = i=>; i < 5;
Predicate<string> lenOf2 = s=> s.length == 2;
dict.Add("01","Name", lessThan5 );
dict.Add("02","place", lenOf2);
我创建了一个这样的扩展方法:
public static class CollectionExtensions
{
public static void Add(this OrderedDictionary s, string k, string v, Predicate p)
{
if (p)
{
d.Add(k, v);
}
}
}
但它不起作用,因为我收到编译器错误“无法将谓词转换为布尔值”。
有谁知道我错过了什么?
谢谢你的帮助。-基思