сравнить 2 списка на поиск элементов Contains

необходимо сравнить 2 списка List. Если содержится в списке слово с другим словом, то ничего не делаем, иначе пишем в стрингбилдер. Я знаю что для сравнения с одним элементом используется Contains и у меня выходит рабочая версия:

      foreach (var item in items)
    {
       if (item.Key.ToLower().Contains("connection"))
                continue;
        sb.AppendLine($"{item.Key}: {item.Value}");
    }

Но как я могу сделать Contains не с одним словом, а с другим списком стрингов? Т.Е у меня будет лист List<string> list = new List<string>() {"connection","cinnection"} и вот как мне в цикле foreach сравнивать каждый элемент со всеми элементами в списке list?


Ответы (1 шт):

Автор решения: Frehzy
var list1 = new List<string>()
{
    "word1", "Word2", "word3"
};
var list2 = new List<string>()
{
    "word4", "word5", "word2"
};
var result = list1.Select(x => x.ToLower()).Intersect(list2.Select(x => x.ToLower())).ToList(); //"word2"

Полезная статья по коллекциям

UPD (сокращённый вариант aepot):

var result = list1.Intersect(list2, StringComparer.OrdinalIgnoreCase).ToList(); //"word2"
→ Ссылка