如何使用C#中的LINQ检查列表是否包含在另一个列表中存在的元素?我不想使用for / while循环。
因此,如果List1具有A、B、C,而List2具有B、1、2,则会返回true。
试试这个:
List<string> a = ...
List<string> b = ...
var inComon = a.Intersect(b).Any();
List<string> l1 = new List<string> { "1", "2" };
List<string> l2 = new List<string> { "1", "3" };
var result = l2.Any(s => l1.Contains(s));
我认为Intersect
方法(参见 dasblinkenlight 的答案)+ Any
要比Contains
+ Any
更好。使用Any
而不是Count
肯定更好。
l1.Any(l2.Contains)
让它更加简洁。 - SimpleVarAny
肯定比Count() != 0
更好! - Sergey Kalinichenko