我有一个长集List<long>
myIds。我正在使用ID填充集合。但是,我在要删除的集合中找到一些重复项。删除集合中的重复值
我试过在收集上使用distinct()
但没有效果。重新排序和应用distinct()
再次也没有帮助。
如何在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?
我尝试这样做:
mydIds.OrderBy(x => x).Distinct().ToList();
我有一个长集List<long>
myIds。我正在使用ID填充集合。但是,我在要删除的集合中找到一些重复项。删除集合中的重复值
我试过在收集上使用distinct()
但没有效果。重新排序和应用distinct()
再次也没有帮助。
如何在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?
我尝试这样做:
mydIds.OrderBy(x => x).Distinct().ToList();
你不reassing含混的结果到列表对象
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));
或者,如果您使用3.5
及以上:
var hs = new HashSet<int>(myIds);
哈希集将由列表填充。如果列表包含重复的条目,则它们将被忽略。不会抛出异常。
您是否尝试过'mydIds = mydIds.OrderBy(x => x).Distinct()。ToList()'? – Liel
你有更完整的代码示例吗?我没有问题通过LINQ的'Distinct'调用从集合中删除重复的'long'值;不需要'OrderBy'。 –
你需要重视与列表不同的结果 – Steve