Проверка двух списков имеет сталкивающийся элемент? - PullRequest
21 голосов
/ 10 сентября 2010

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

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

Ответы [ 3 ]

36 голосов
/ 10 сентября 2010

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

Например

if(list1.Intersect(list2).Any()) 
3 голосов
/ 10 сентября 2010

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

if (list1.Intersect(list2).Count() > 0) ...
2 голосов
/ 10 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...