检查列表是否包含重复项

时间:2017-10-02 20:21:40

标签: vb.net

有一些自定义对象如下所示:" WhateverObject"。我在下面的列表中使用它。我想检查一下是否有重复的#34; Number"在我的名单上。正如你在下面看到的那样,我们得到了两个项目" Number"重复(71)。我只想查看我的列表:

If input has duplication Then
...
Else
...
End If

Mu简单代码:

Class WhateverObject
  Property Id as Integer
  Property Number as Integer
End Class

Dim input As New List(Of WhateverObject)
input.Add(New WhateverObject(1, 71))
input.Add(New WhateverObject(2, 80))
input.Add(New WhateverObject(3, 71))

到目前为止,我得到了这个,但如何从中得到真实/ felse(如果功能正确)?:

Dim duplicates = input.GroupBy(Function(i) i.Number) _
                              .Where(Function(x) x.Count() > 1) _
                              .[Select](Function(x) x)

2 个答案:

答案 0 :(得分:1)

以下是重复

Dim duplicates =
    input.
    GroupBy(Function(i) i.Number).
    Where(Function(i) i.Count > 1).
    Select(Function(i) i.Key).
    ToList()

布尔值

Dim hasDuplicates = duplicates.Count > 0

答案 1 :(得分:0)

基于https://stackoverflow.com/a/11228884/7943564

msys2_shell.cmd -mingw32 -c "make -f Makefile.blah debug=1"

(注意:我实际上并不知道VB,但这个修改是非常基本的Linq)