Мне нужно пройти список, содержащий строковые предложения, и найти предложения, содержащие строковые слова из другого списка, и добавить их в отдельный список для отображения целей. Код ниже печатает одно и то же предложение несколько раз, поэтому мне было интересно, какой правильный формат вложенного цикла foreach?C# Правильный формат вложенного цикла foreach?
List<string> sentenceList = new List<string>();
sentenceList.Add("Dog ate a bone");
sentenceList.Add("Cat had a ball and bone");
List<string> keywords = new List<string>();
keywords.Add("bone");
keywords.Add("Cat")
List<string> NewList = new List<string>();
foreach (string sentence in sentenceList)
{
foreach (string word in keywords)
{
if (sentence.Contains(word))
{
NewList.Add(sentence);
}
}
}
Что я получаю в качестве вывода:
Собака съела кости
кошки мяч и кости
кошки мяч и кости
Я хочу, чтобы каждое предложение появлялось только o Очевидно, но почему он повторяется дважды? Что я делаю не так?
I получает повторяется, потому что второе предложение содержит оба ключевых слова (кости и Cat) , – user1492780