【发布时间】:2015-01-16 00:01:38
【问题描述】:
我已经阅读了大约 30 篇关于此主题的帖子,并且认为我完全按照您的指示进行了操作。
这是我正在使用的课程:
public class UserID
{
public int user_id { get; set; }
public bool exists { get; set; }
}
我创建了两个不错的列表。
List<UserID> List1 = new List<UserID>();
List<UserID> List2 = new List<UserID>();
我已成功填充两个列表。
我正在尝试获取唯一用户 ID 的列表。我找到了列表的 union 方法并试了一下。
List<UserID> ResultList = new List<UserID>();
ResultList = List1.Union(List2).ToList();
这就是问题所在。在此处运行的最后一行之后,ResultList 只是放在一起的两个列表。
List1 有 { 10, 20, 30, 40 } List2 有 { 10, 30, 40, 50, 60 }
我期待工会给我:
结果列表 = { 10, 20, 30, 40, 50, 60 }
但它给了我:
结果列表 = { 10, 20, 30, 40, 10, 30, 40, 50, 60 }
我做错了什么?我读过很多不同的帖子,它们都说了同样的话——基本上是用法。我没有正确使用它吗?我没有收到任何错误,只是没有给我我期望的工会。
【问题讨论】:
-
Union 会将 2 个列表添加到一起,而不检查它们的值或删除重复项。你可以在联合之后调用 Distinct() ,它会给你没有重复的唯一值