【问题标题】:Comparing two lists distinct value C# [duplicate]比较两个列表不同的值C# [重复]
【发布时间】:2025-12-26 18:50:06
【问题描述】:

我有 2 个列表,比如 list1 和 list2。喜欢

 List<int> list1 = {1,2,3};
 List<int> list2 = {3,4};

现在我希望我的结果列表像

{1,2,3,4}

我试过了

result= list1.Union(list2).ToList();

但它给出的结果像

{1,2,3,3,4}

谁能帮我解决这个问题?

【问题讨论】:

  • 请发minimal reproducible example,我无法重现你描述的行为,你描述的是调用.Concat的结果,而不是.Union.Union的行为正是你说你想要的。因此,您必须发布minimal reproducible example,以便我们可以准确地看到您在做什么。
  • 可能你有没有实现IComparable的对象列表
  • 您的代码在我测试时返回了{1,2,3,4}。真的是你在做什么吗?
  • 请记住,如果您不是实际上比较数字,而是您自己的类型,则必须覆盖GetHashCodeEquals 以便.Union知道如何比较你的类型。但是,在您发布的特定示例中,代码已经完成了您希望它执行的操作。

标签: c# .net linq


【解决方案1】:

很简单:

var result= list1.Union(list2).Distinct().ToList();

【讨论】:

  • 在给出的示例中,应该不需要.Distinct(),因为想要的行为正是.Union 所做的。