集合.Contains()不起作用

Sai*_*han 1 vb.net

我到处检查,找不到解决方案.我有以下内容

Dim users as New List(of TUser)

Private Sub AddSelectedUsers()

For Each user as TUser in gridSelectedItems()

If Not users.Contains(user) Then

users.Add(user)

End If

Next

End Sub 
Run Code Online (Sandbox Code Playgroud)

"包含"不起作用.我一直在用户列表上得到重复项.

小智 5

List.Contains()方法使用默认的相等运算符.由于TUser似乎是一个类,因此只有在两次比较中引用完全相同的TUser实例时,List.Contains()才会匹配,显然不是这种情况.请在此处查看更详细的说明.

解决的办法是实现对TUSER类的平等覆盖,按照例子在这里.