如何在C#中从列表中删除非重复项

本文关键字:删除 列表 | 更新日期: 2023-09-27 17:57:51

我想做与这里相反的事情

我有一个列表,我知道如何删除重复项。但我希望有一个选项,用户可以选择保留哪个副本。有些查询查询我可以有一个只显示重复项的列表。类似于:

假设我的列表是:

"tom"bob"Frank"

我知道,如果我使用不同的方法,我会得到:

"tom"bob"Frank"Lacey"

我不知道我必须用什么方法才能得到:

"bob"

或获取

"bob"frank"

因为这些都是重复的。

如何在C#中从列表中删除非重复项

您可以使用GroupBy过滤掉只出现一次的项目,然后将剩余的项目放回列表中:

var resultList = list.GroupBy(x => x)
                     .Where(g => g.Count() > 1)
                     .SelectMany(g => g)
                     .ToList();

我需要通过一个特定的属性来比较它们,因为我刚刚将您的查询BrokenGlass修改为

var resultList = itemsThatNeedToBeAdded.GroupBy(x => x.property1)
                     .Where(g => g.Count() > 1 )
                     .SelectMany(g => g)
                     .ToList();