首页 > 解决方案 > 如果两个列表包含任何公共值,则返回 true

问题描述

我有两个清单。true如果两个列表都包含一个或多个公共值,我想返回一个布尔结果,否则返回false

List<String> list1 = new List<String> { "Alex", "James", "Donald", "Bill", "Trump" };
List<String> list2 = new List<String> { "Alex", "Tom", "Jerry", "Donald", "Gates", "Trump" };

我知道list1.Intersect(list2),但很明显,它不会提供真/假输出。

标签: c#linq

解决方案


这可以使用 Linq 来实现。正如您已经知道的那样, .Intersect 将产生一个新列表,其中包含两个列表中的项目。剩下的就是检查该新列表中是否有任何内容。一个有效的解决方案可以用 .Any() 来完成,一旦找到东西就会返回。

list1.intersect(list2).Any()

在此处查看有关 .Any() 的更多信息:https ://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.any?view=net-5.0


推荐阅读