我想做与here
相反的事情我有一个列表,我知道如何删除重复项。但是我希望有一个选项,用户可以选择要保留的副本。一些查询问题我可以有一个只显示重复项的列表。类似的东西:
让我们说清单是:
“tom”“bob”“Frank”“bob”“Lacey”“Frank”
我知道如果我使用不同的方法,我会得到:
“tom”“bob”“Frank”“Lacey”
我不知道我必须使用什么方法来获取:
“bob”“bob”“frank”“frank”
或获得
“bob”“frank”
因为那些是重复的。
答案 0 :(得分:22)
您可以使用GroupBy
过滤掉仅出现一次的项目,然后将其余项目展平回列表:
var resultList = list.GroupBy(x => x)
.Where(g => g.Count() > 1)
.SelectMany(g => g)
.ToList();
答案 1 :(得分:1)
我需要通过特定属性对它们进行比较,之前我只是将您的查询BrokenGlass修改为
var resultList = itemsThatNeedToBeAdded.GroupBy(x => x.property1)
.Where(g => g.Count() > 1 )
.SelectMany(g => g)
.ToList();