Чтобы определить, содержит ли одна из строк из списка начальную часть указанной строки с помощью LINQ - PullRequest
2 голосов
/ 05 февраля 2009

Я хочу добиться следующей функциональности с помощью LINQ.

Дело 1:

listOfStrings = {"C:","D:","E:"}
myString = "C:\Files"

Output: True

Случай 2:

listOfStrings = {"C:","D:","E:"}
myString = "F:\Files"

Output: False

Ответы [ 3 ]

8 голосов
/ 05 февраля 2009
bool b = listOfStrings.Any(myString.StartsWith);

или чуть более многословно (но легче понять):

bool b = listOfStrings.Any(s => myString.StartsWith(s));
0 голосов
/ 05 февраля 2009

Вы можете использовать любой метод расширения:

bool result = listOfStrings.Any(str => str.StartsWith(...));
0 голосов
/ 05 февраля 2009

Попробуйте это:

bool contains = listOfStrings.Exists(s => myString.IndexOf(s)!=-1);

Если вы знаете, что оно должно быть в начале строки, то:

bool contains = listOfStrings.Exists(s => myString.StartsWith(s));

РЕДАКТИРОВАТЬ Решение Марка приятнее:)

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