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",
};
I need a linq query with method syntax with returns "This is a Lemon", "This is a Orange" from fullMessagesList. I need to check for contains() for each text in another list.
I have written it using old school foreach loops but need to figure it with linq using method syntax.
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);
}
}
var unknownFruites = fullMessagesList.Where(
message => !partialMessagesList.Any(
p => message.IndexOf(p, StringComparison.InvariantCultureIgnoreCase) >= 0
)
);
The English interpretation of this code would be "select all messages where the message doesn't contain any string in the partial messages list."