0
我在代码片段中遇到了一些问题,我正在尝试将一个项目添加到我成功执行的dataTable中,但是我注意到如果我尝试添加系统允许的相同元素,我自然会出发创建某种验证方式,以避免添加已在表中的ID。Visual Basic - 验证数组列表是否包含值
我真的没有看到我的代码有问题,但后来我又有点新的了。我想要做的是一个for循环,用当前项目的ID填充arrayList,然后检查列表中是否已经存在该ID(从组合框cmbRol获取)以避免重复。
任何见解或提示将是非常有帮助的。
这是我的代码。
Private Sub onAsignar(sender As Object, e As EventArgs) Handles btnAsignar.Click
Dim rol As Integer = cmbRol.SelectedValue
Dim lstActual As New ArrayList
Dim rw As Integer
For Each row As DataGridViewRow In gridListaDatos.Rows
lstActual.Add(gridListaDatos.Item(0, rw).Value)
Next
If (lstActual.Contains(rol)) Then
MessageBox.Show("This ID already exists in the table", "Asignar Rol", MessageBoxButtons.OK)
Else
gestorRol.asignarRolUsuario(rol, idUsuario)
ActualizarTabla()
End If
End Sub
End Class
。如果(lstActual.Contains(row)Then MessageBox else执行add,并将if语句放在for循环中,而不是在它之外。我也不会做一个消息框,因为如果列表中有100个元素,这可能会很烦人。你可能想在文件中记录重复项以确保所有的数据都是相同的 – 2014-11-02 08:16:46
当我使用MsjBox时,lsActual似乎实际上存储整数,或者selectedValue或I有问题我没有正确地将每个元素添加到列表中......无论如何它不会给我太多洞察力 – 2014-11-02 08:30:26
MsjBox显示相同的行,例如弹出3次(arrayList中的每个元素一个),但只显示冷杉的价值,如:3-3-3 – 2014-11-02 08:35:46