我想根据对象中的字段检查重复项。
我有一个名为Item的对象,它有3个属性
ID
Rank
Name
我在一个名为
的容器中有一个Item类型列表lstTheItems
我正在使用此代码检查重复项
'lstTheItems IS NOT CORRECT
Dim duplicates = lstTheItems.GroupBy(Function(i) i) _
.Where(Function(g) g.Count() > 1) _
.[Select](Function(g) g.Key)
如何根据Name属性返回重复的项目?
答案 0 :(得分:1)
Dim duplicates = svgGrpContainer.Select(Function(x) svgGrpContainer.Count(Function(y)) > 1));
这意味着我们将选择在svgGrpContainer中出现多次的所有元素。
Function(x)
= svgGrpContainer的一个元素
svgGrpContainer.Count
=遍历所有获得计数的元素..
Function(y) > 1
=表示我们将采用多次出现的所有元素
我希望这会有所帮助
答案 1 :(得分:0)
您需要按Name
对其进行分组,而不是对象本身。此外,您可能希望将整个对象放回到重复列表中,而不仅仅是密钥(在本例中为名称)。
Dim duplicates = lstTheItems.GroupBy(Function(i) i.Name) _
.Where(Function(x) x.Count() > 1) _
.[Select](Function(x) x)
答案 2 :(得分:0)
Dim duplicates = svgGrpContainer.GroupBy(Function(x) x.Name).Where(Function(x) x.Count > 1).Select(Function(x) x)