【发布时间】:2011-07-12 00:53:23
【问题描述】:
我有以下方法定义(编辑删除多余的泛型):
public static T SearchAgaistValues<T>(Dictionary<string, string> input,
string key, List<T> values, Predicate<T> match, out string[] cmdParams)
我的简化要求如下。我需要在input 中搜索key,如果找到,看看它的值是否出现在values 中。但是,values 是通用的(显然会包含我需要匹配的字符串)。因此,在我看来,我必须通过一个谓词方法来执行匹配。
然而,我见过的每个Predicate<T> 的例子都有一个硬编码的比较器。我需要将找到的key's 值与values 中的每个项目进行比较。但是,我无法传递这些值。
我看不到如何在 foreach 循环之外使用基于委托的匹配方法执行此操作。
我错过了什么吗?
【问题讨论】:
-
这里的类型参数T有什么意义?
-
另外,如果
values是一个通用列表,但是会包含一个你需要匹配的字符串,你的意思是你需要匹配values中对象的一个字符串属性,或者什么?请澄清。 -
" 但是,值是通用的(显然会包含我需要匹配的字符串)。"我需要完全符合你所说的。
标签: c# .net c#-4.0 delegates predicates