我有一个 longs List<long>
myIds 的集合。我正在用 id 填充集合。但是,我在要删除的集合中得到了一些重复项。
我曾尝试distinct()
在集合上使用,但没有效果。重新排序并distinct()
再次申请也无济于事。
在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?
我试过这个:
mydIds.OrderBy(x => x).Distinct().ToList();
我有一个 longs 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));