gpt4 book ai didi

c# - 任何内置方法只知道两个列表是否不同?

转载 作者:行者123 更新时间:2023-11-30 14:40:45 26 4
gpt4 key购买 nike

我必须比较两个列表并且知道它们是否包含相同的值。我不打算对差异做任何事情。

在 C# 中实现此目标的最佳方法是什么?

我知道我可以循环列表,但想知道是否有任何内置的 LINQ/扩展方法可以实现此目的,从而提供更好的性能。尝试过 Except/Intersect,但不知道它们是否最适合实现此目的。

更新:列表中不会有任何重复项。

最佳答案

您想如何处理重复项?例如,您会将 { 2, 1, 1 } 视为与 { 1, 2 } 相同吗? (我假设顺序无关紧要...否则只需使用 SequenceEqual。)

假设您只关心“集合”是否有效,这里有两个选项:

一种快速而肮脏的方式:

if (!list1.Except(list2).Any() && !list2.Except(list1).Any())

稍微简洁一点的方式:

var set = new HashSet<int>(list1); // Adjust case accordingly
if (set.SetEquals(list2))
{
// Lists were equal
}

需要考虑的一件事:如果您只对将它们视为集合感兴趣,您可能希望首先使用集合表示,而不是列表...

关于c# - 任何内置方法只知道两个列表是否不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com