Проверка двух списков имеет встречный элемент?
Есть ли способ проверить, сталкивается ли один список с другим? например:
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...}
.