【问题标题】:How to remove duplicates from a list in C#如何从C#中的列表中删除重复项
【发布时间】:2011-02-14 22:25:44
【问题描述】:

我想从此列表中删除重复项:

List<Dictionary<string, object>> val = new List<Dictionary<string, object>>();

如果我以这种方式应用 Distinct() 将不起作用:

 List<Dictionary<string, object>> result = val.Distinct().ToList<Dictionary<string, object>>()

更新:问题现已解决。我使用 MySQL union 命令从数据库中读取表。

【问题讨论】:

  • 你问过这个问题了吗?我再也找不到它了,但我确定我不久前就看到了......这个问题的问题仍然存在:你如何定义“重复”?完全相同的实例,相同的键,相同的键和值?

标签: c# asp.net duplicates


【解决方案1】:

试试这个:

List<Dictionary<string, object>> result = val.Distinct(new myDictionaryComparer()).ToList();

其中myDictionaryComparer 是Comparer Class。你可以在这个类中实现你的比较逻辑。

【讨论】:

  • 您不一定需要将您的字典包装在 MyClass 中。您可以简单地定义一个实现 IEqualityComparer> 的类并将其传递给 Distinct
  • @digEmAll:是的!你所说的在这种情况下更相关。谢谢。检查我的编辑。
【解决方案2】:

您可以使用以下方法:

val.Distinct()

【讨论】:

  • 重复项是同一个实例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 2011-02-20
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多