我有一个 long 类型的集合 List<long>
,名为 myIds。我正在向集合中添加 id,但是有些重复的 id 我想要删除。
我尝试使用 distinct()
方法来去除重复元素,但是没有效果。重新排序并再次应用 distinct()
也没有帮助。
有什么最好的方法可以在不编写自定义逻辑的情况下删除这些重复项吗?
我尝试了以下代码:
mydIds.OrderBy(x => x).Distinct().ToList();
我有一个 long 类型的集合 List<long>
,名为 myIds。我正在向集合中添加 id,但是有些重复的 id 我想要删除。
我尝试使用 distinct()
方法来去除重复元素,但是没有效果。重新排序并再次应用 distinct()
也没有帮助。
有什么最好的方法可以在不编写自定义逻辑的情况下删除这些重复项吗?
我尝试了以下代码:
mydIds.OrderBy(x => x).Distinct().ToList();
由于LINQ不会原地更改列表,因此您需要重新分配列表:
mydIds = mydIds.Distinct().ToList();
如果您使用的是3.5及以上版本:
var hs = new HashSet<int>(myIds);
HashSet将由列表填充。如果列表包含重复条目,则将忽略它们。不会抛出任何异常。
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));
mydIds = mydIds.OrderBy(x => x).Distinct().ToList()
吗? - LielDistinct
调用轻松删除集合中的重复long
值,不需要OrderBy
。 - Chris Sinclair