




Поскольку вы просто проверяете, соответствует ли какой-либо элемент, вы можете использовать Any().
return !list1.Any( item1 => list2.Any(item2 => item2 == item1 ));
Я бы просто использовал функцию Intersect, доступную для списков, и она вернет вам все элементы, которые являются общими в двух списках. Если вы просто хотите узнать, существует ли он, вы можете сделать это очень легко, проверив счетчик.
int count = List1.Select(s => s.number).Intersect(List2.Select(s => s.number)).Count;
Если вы хотите узнать, какие элементы уникальны в обоих списках, используйте метод Exclude.
var uniqueItems = List1.Select(s => s.number).Except(List2.Select(s => s.number));
Ну вот !!
Использование синтаксиса метода Linq:
!list1.Any(item => list2.Any(item2 => item.number == item2.number))
Использование синтаксиса запроса Linq:
!(from item in list1
from item2 in list2
where item.number==item2.number select item).Any()
Это также предполагает, что после этих петель есть
return true;.