Как передать каждое значение массива в метод, используя linq - PullRequest
0 голосов
/ 05 мая 2011

Допустим, у меня есть массив:

string[] s = GetArray();

и метод:

public bool CheckIfInArray() { .. }

Я хочу передать каждое значение этого массива в метод и получить результат bool, как только будет выполнено какое-либо первое сопоставление (после первого сопоставления нет причин для зацикливания до последнего элемента массива).

вроде как:

s.ContainsAtLeasFirstMatching(x => CheckIfInArray(x))

Я не хочу использовать петли. Можно ли добиться этого с помощью LINQ?

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Я предполагаю, что сигнатура метода на самом деле:

public bool CheckIfInArray(string str) { .. }

В этом случае вы можете написать:

string[] s = GetArray();
bool atLeastOneMatch = s.Any(CheckIfInArray);

Если вы заинтересованы в использовании первого соответствующего элемента,Вы также можете использовать FirstOrDefault:

// firstMatch will be null if there is no match
string firstMatch = s.FirstOrDefault(CheckIfInArray);
3 голосов
/ 05 мая 2011

Вы можете сделать это с помощью метода Any ().

s.Any(x => CheckIfInArray(x))

Возможно, вы захотите взглянуть на страницу MSDN Enumerable Methods , чтобы увидеть, какие методы вам доступны.и для чего они используются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...