Проверка двух списков имеет встречный элемент?

Есть ли способ проверить, сталкивается ли один список с другим? например:

    bool hit=false;
    foreach(var s in list2)
    {
        if (list1.Contains(s))
        {
            hit = true;
            break;
        }
    }
    if (!hit)
    {

Ответ 1

У .NET есть ряд заданных операций, которые работают над перечисляемыми, поэтому вы можете взять установленное пересечение, чтобы найти членов в обоих списках. Используйте Any(), чтобы узнать, есть ли в результате последовательности какие-либо записи.

например.

if(list1.Intersect(list2).Any()) 

Ответ 2

Вы всегда можете использовать linq

if (list1.Intersect(list2).Count() > 0) ...

Ответ 3

Если вы можете использовать Linq, тогда if(list1.Intersect(list2).Count > 0) {...collision...}.