Как проверить, содержит ли строка указанную c строку в c# - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу проверить, содержит ли строка другую строку. Например: у меня есть строка 'program mangement' в одном списке и строка 'computer program' в другом списке. Я хочу вернуть «компьютерную программу» в результате. Я пробовал следующие вещи:

List<string> strlist1 = new List<string>();
strlist1.Add("program mangement");
strlist1.Add("english language");

List<string> strlist2 = new List<string>();
strlist2.Add("computer program");
strlist2.Add("computer");
strlist2.Add("test");

foreach(var keys in strlist2)
{
  var result = strlist1.Where(x=>x.Contains(keys)).FirstOrDefault();     
  Console.WriteLine(result);     
 }

Я хочу получить результат как «Компьютерная программа», поскольку слово программы содержится во втором списке. Но это не возвращает никакого результата. Кто-нибудь может подсказать, как вернуть желаемый результат ..

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Вам необходимо проверить, содержит ли computer program analytics computer program:

foreach (var keys in strlist2)
{
     var result = strlist1.Where(x => keys.Contains(x)).FirstOrDefault();
     Console.WriteLine(result);
}

ОБНОВЛЕНИЕ:

Если необходимо проверить, не является ли слово, а не целое предложение, содержится в другом массиве, тогда мы можем разбить предложение на массив слов и проверить их:

foreach (var keyList2 in strlist2)
{
    foreach (var keyList1 in strlist1)
    {
         var splittedWords_1= keyList1.Split(' ');
         var splittedWords_2 = keyList2.Split(' ');
         bool containsValues = splittedWords_1.Any(s1 => splittedWords_2.Contains(s1));                    
         if (containsValues)
         {
              Console.WriteLine(keyList2);
         }                   
    }                
}
0 голосов
/ 06 февраля 2020

Я надеюсь, что эта помощь

var found = false;
foreach (var s in strlist1)
{
    found = strlist2.Any(c => c.Contains(s));
    if (found) break;
}
Console.WriteLine(found.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...