我有两个列表如何检查list1是否有一些来自list2的项目
因为我有:
list1 = ["car","424", "fwe"]
list2 = ["car", "cat"]
可能是这样的:
if list1 has elements from list2
然后返回true
答案 0 :(得分:8)
您可以使用LINQ Intersect
,Except
函数。
答案 1 :(得分:8)
您可以使用与任何相交:
list1.Intersect(list2).Any()
答案 2 :(得分:1)
最佳解决方案实际上取决于您的具体情况。
例如,您可以比较每对元素,这将是一个非常简单的实现。但是,如果列表很长,这并不是特别有效。
第二个选项是将一个列表的所有元素添加到HashSet,然后尝试添加第二个列表的所有元素。如果存在共同的元素,则在尝试添加副本时,HashSet Add()方法将返回false。这对于大型列表来说会更快,但需要额外的内存,并且可能会产生可读性较低的代码。
答案 3 :(得分:0)
另一种可能的解决方案:
list1.Any(e => list2.Contains(e));