Передача нескольких аргументов в предикат <T> - PullRequest
1 голос
/ 19 марта 2011

Я вызываю метод фильтрации, который принимает параметр Predicate T

void MethodName(Predicate<T> param)
{
}

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

Проблема заключается в том, что мне нужно иметь возможность фильтровать несколько разных значений, а число значений неизвестно.Пример с 3 значениями должен быть

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 Ответ

1 голос
/ 19 марта 2011
x.MethodName(x => new []{10, 20}.Contains(x.SomeProperty));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...