Запрос Linq с синтаксисом метода необходим для двух списков с типом List <string> - PullRequest
0 голосов
/ 22 мая 2018
var fullMessagesList = new List<string>(){
"This is Apple",
"This is mango",
"This is a Lemon",
"This is a Orange"
};

var partialMessagesList = new List<string>(){
"Apple",
"mango",
};

Мне нужен запрос linq с синтаксисом метода с возвратами «Это лимон», «Это апельсин» из fullMessagesList.Мне нужно проверить для каждого текста в другом списке для Вектор (*) 1003 *

Я написал его, используя циклы foreach старой школы, но мне нужно вычислить его с помощью linq, используя синтаксис метода.

var unknownFruites = new List<string>();
foreach (var message in fullMessagesList)
{
   var flag = 1;
   foreach (var partialmessage in partialMessagesList)
   {
      if (message.Contains(partialmessage))
      {
        flag = 0;
        break;
      } 
   }

   if (flag == 1)
   {
      unknownFruites.Add(message);
   }
}                       

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Если вы хотите игнорировать регистр:

var unknownFruites = fullMessagesList.Where(
    message => !partialMessagesList.Any(p => string.Compare(p, message, true) == 0)
);
0 голосов
/ 22 мая 2018
var unknownFruites = fullMessagesList.Where(
    message => !partialMessagesList.Any(
        p => message.IndexOf(p, StringComparison.InvariantCultureIgnoreCase) >= 0
    )
);

Интерпретация этого кода на английском языке: «выберите все сообщения, в которых сообщение не содержит строки в списке частичных сообщений».

...