LINQ method to see if two lists contain a match

Posted written by Paul Seal on August 09, 2016 C#

This comes up quite often in my work where I want to check if a value from one list is in another list.

Perhaps you need to check if a user has a permission do do something.

You have a list of the user's roles and you have a list of roles that are allowed to do the thing. With the code below, you can pass in the two lists and get a true or false answer back for if there was a match.

public static bool ListsContainAMatchingValue(IEnumerable<string> listA, IEnumerable<string> listB)
{
    return listA.Any(x => listB.Contains(x));
}

Feel free to use this code, and share with others. If you have an alternative suggestion, please leave it in the comments.