Как найти, содержит ли строка какие-либо элементы списка строк?

У меня есть строка и список строк:

string motherString = "John Jake Timmy Martha Stewart";

и я хочу найти, содержит ли эта строка какую-либо из строк в списке, т.е.:

var children = new List<string>{"John", "Mike", "Frank"};

Итак, я хочу узнать, содержит ли motherString один из элементов от детей, т.е. 'Джон'

Каким будет лучший способ сделать это?

Ответы

Ответ 1

Самый простой код, который я мог бы придумать, будет:

var hasAny = children.Any(motherString.Contains);

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

var hasAny = motherString.Split(new[] { ' ' }).Any(children.Contains);

Если слова в motherString могут быть разделены другими символами, вы можете добавить их следующим образом:

motherString.Split(new[] { ' ', ',', ':' })