相关疑难解决方法(0)

如何查找列表中的元素是否在另一个列表中?

我想知道在第二个列表中是否可以找到第一个列表中的至少一个元素.

我可以看到两种方法.假设我们的列表是:

List<string> list1 = new[] { "A", "C", "F", "H", "I" };
List<string> list2 = new[] { "B", "D", "F", "G", "I" };
Run Code Online (Sandbox Code Playgroud)

第一种方法使用循环:

bool isFound = false;
foreach (item1 in list1)
{
    if (list2.Contains(item1))
    {
        isFound = true;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个直接使用Linq:

bool isFound = list1.Intersect(list2).Any();
Run Code Online (Sandbox Code Playgroud)

第一个是写的很长,而不是非常直接/易于阅读.第二个是短而清晰的,但表现很低,特别是在大型名单上.

这可能是一种优雅的方式吗?

c# linq performance

24
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×1

linq ×1

performance ×1