删除集合中的重复值

本文关键字:集合 删除 | 更新日期: 2023-09-27 18:16:18

我有一个长List<long> myIds的集合。我正在用id填充集合。然而,我在集合中得到了一些我想要删除的重复项。

我已经尝试在集合上使用distinct(),但没有效果。重新排序和再次使用distinct()也没有帮助。

在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?

我试过了:

mydIds.OrderBy(x => x).Distinct().ToList();

删除集合中的重复值

你需要重新分配列表,因为LINQ不改变列表:

 mydIds = mydIds.Distinct().ToList();

如果您使用的是3.5及以上版本:

var hs = new HashSet<int>(myIds);

哈希集将由列表填充。如果列表包含重复的条目,它们将被忽略。

不能将Distinct的结果传递给List对象

List<long> id = new List<long>() {20,50,34, 20, 21, 45, 50, 900, 34, 20};
id = id.Distinct().ToList();
id.ForEach(x => Console.WriteLine(x));