将多个参数传递给Predicate <t> </t>

时间:2011-03-19 14:44:30

标签: c#-4.0 lambda

我正在调用一个接受参数Predicate T

的过滤方法
void MethodName(Predicate<T> param)
{
}

x.MethodName(x => x.SomeProperty == 10); // or
x.MethodName(delegate(MyClass x) {return x.SomeProperty == 10;});

问题是我需要能够过滤几个不同的值,并且值的数量是未知的。具有3个值的示例ouwld是

x.MethodName(x => x.SomeProperty == 10 || x => x.SomeProperty == 20); // or
x.MethodName(delegate(MyClass x) {return x.SomeProperty == 10 || x.SomeProperty == 20;});

我可以使用未知数量的可能值吗?这将是很大的,但它不可能:)

x.MethodName(x => x.SomeProperty == {10, 20});

谢谢, 戈兰

1 个答案:

答案 0 :(得分:1)

x.MethodName(x => new []{10, 20}.Contains(x.SomeProperty));