我有一长串List<long>
myIds。我正在使用id填充集合。但是,我想要删除的集合中有一些重复。
我尝试在集合上使用distinct()
但没有效果。重新排序并再次应用distinct()
也无济于事。
在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?
我试过了:
mydIds.OrderBy(x => x).Distinct().ToList();
答案 0 :(得分:7)
您需要重新分配列表,因为LINQ不会更改列表:
mydIds = mydIds.Distinct().ToList();
答案 1 :(得分:3)
或者,如果您使用的是3.5
及以上:
var hs = new HashSet<int>(myIds);
列表将填充哈希集。如果列表包含重复条目,则将忽略它们。不会抛出异常。
答案 2 :(得分:1)
您没有将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));