检查ListBox中的重复项
本文关键字:ListBox 检查 | 更新日期: 2023-09-27 18:27:35
我想要实现的如下:每次添加student
时,它都应该检查ListBox
内部是否有重复条目。如果是这种情况,它应该显示一个MessageBox
,并防止将该项添加到ListBox
。
这是我目前的代码:
private void buttonAdd_Click(object sender, EventArgs e)
{
Student student = GetStudent();
Repository.AddStudent(student);
if (listBoxStudents.Items.Contains(student))
{
MessageBox.Show("This student already exists!");
}
else
{
listBoxStudents.Items.Add(student);
ClearandFocus();
}
}
我想知道为什么我的代码不能正常工作,输入来自一个添加到List<Students>
和ListBox
的表单中的几个TextBoxes
。
发生这种情况可能是因为您没有在Student
类中正确重写Equals
方法。如果不基于类数据重写Equals
,则会运行object
类中的默认Equals
方法,该方法只比较对象引用。因此,您正在比较两个相同但不同的对象,这将导致object.Equals
中的值false
,从而导致Contains
方法返回false
。