gpt4 book ai didi

c# - 检查 ListBox 中的重复项

转载 作者:太空狗 更新时间:2023-10-30 01:33:17 24 4
gpt4 key购买 nike

我想要实现的是:每次我添加一个 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();
}
}

我想知道为什么我的代码不能正常工作,输入来自多个 TextBoxes以一种被添加到 List<Students> 的形式和 ListBox .

最佳答案

这可能是因为您没有正确覆盖 Student 类中的 Equals 方法。当您不基于类数据重写 Equals 时,object 类中的默认 Equals 方法会运行,它只是比较对象引用。因此,您正在比较两个相同但不同的对象,这导致 object.Equals 的值为 false,这导致 Contains 方法返回 false

关于c# - 检查 ListBox 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34403796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com