Search code examples
c#linq

Check if a string within a list contains a specific string with Linq


I have a List<string> that has some items like this:

{"Pre Mdd LH", "Post Mdd LH", "Pre Mdd LL", "Post Mdd LL"}

Now I want to perform a condition that checks if an item in the list contains a specific string. something like:

IF list contains an item that contains this_string

To make it simple I want to check in one go if the list at least! contains for example an item that has Mdd LH in it.

I mean something like:

if(myList.Contains(str => str.Contains("Mdd LH))
{
    //Do stuff
}

Solution

  • I think you want Any:

    if (myList.Any(str => str.Contains("Mdd LH")))
    

    It's well worth becoming familiar with the LINQ standard query operators; I would usually use those rather than implementation-specific methods (such as List<T>.ConvertAll) unless I was really bothered by the performance of a specific operator. (The implementation-specific methods can sometimes be more efficient by knowing the size of the result etc.)