C# 即使数组中没有合适的名称,MessageBox也会继续显示

C# 即使数组中没有合适的名称,MessageBox也会继续显示,c#,C#,我想有一个MessageBox,如果名称不在数组中,它会弹出,但是当我运行程序时,它显示当我键入名称时,即使名称在数组中,MessageBox仍然会出现 private void Btn1_Click(object sender, EventArgs e) { string name = txtbox1.Text; clsStudent [] students = new clsStudent[5]; students[0] = new clsStudent("Dan",

我想有一个
MessageBox
,如果名称不在数组中,它会弹出,但是当我运行程序时,它显示当我键入名称时,即使名称在数组中,
MessageBox
仍然会出现

private void Btn1_Click(object sender, EventArgs e)
{
    string name = txtbox1.Text;
    clsStudent [] students = new clsStudent[5];
    students[0] = new clsStudent("Dan","IT","class1",3.9);
    students[1] = new clsStudent("Ben", "IT","class2", 3.8);
    students[2] = new clsStudent("Kardi", "IT","class3",2.4);
    students[3] = new clsStudent("Shaggy", "IT", "class4", 3.2);
    students[4] = new clsStudent("Bernie", " IT", "class5", 2.7);
    for (int i = 0; i < students.Length; i++)
    {       
        if(name == students[i].NAME)
        {
            txtbox2.Text = students[i].COURSE;
            txtbox3.Text = students[i].STUDENTCLASS;
            txtbox4.Text = students[i].Gpa.ToString();
        }
        else 
        {
            MessageBox.Show("Name does not exist");
            break;
        }
    }
}
private void Btn1\u单击(对象发送者,事件参数e)
{
字符串名称=txtbox1.Text;
clsStudent[]学生=新clsStudent[5];
学生[0]=新的CLS学生(“Dan”、“IT”、“class1”,3.9);
学生[1]=新的CLS学生(“本”、“IT”、“2班”,3.8);
学生[2]=新CLSSStudent(“卡迪”、“IT”、“3班”、2.4);
学生[3]=新来的CLS学生(“蓬松”、“IT”、“4班”、3.2);
学生[4]=新CLS学生(“伯尼”、“IT”、“5班”、2.7);
for(int i=0;i
查看您正在迭代
学生
,并在每次迭代中检查
名称
,如果它与将显示的消息不匹配。这就是你经常收到信息的原因。为了避免这种情况,我们可以使用一个布尔变量,每当找到匹配项时,该变量就会设置为
true
,我们可以在完成迭代后检查该变量。请参阅下面的代码:

bool isExist = false;
for (int i = 0; i < students.Length; i++)
{
    if (name == students[i].NAME)
    {
        txtbox2.Text = students[i].COURSE;
        txtbox3.Text = students[i].STUDENTCLASS;
        txtbox4.Text = students[i].Gpa.ToString();
        isExist = true;
        break;
    }
}
if (!isExist)
{
    MessageBox.Show("Name does not exist");
}

您需要
中断
当被发现时,您没有。还有其他事情,但与你的实际问题无关。还有,当有同名学生时会发生什么?在5个元素的列表中,这并不重要,但当你找到自己的名字时,你应该从loop@Steve:谢谢你的评论,请查找更新,现在是better@sujithkarivelil如果用户输入
ben
你认为会发生什么事呢?@đ!你是指区分大小写的比较吗?这完全取决于OP希望如何执行比较。对于<代码>本<代码>的输入,当前代码将输出为<代码>“名称不存在”为其实现,他需要考虑CASE方法<代码>。ToWORCase](< /代码>)在比较运算符的两侧将解决这个问题。
clsStudent selectedStudent = students.FirstOrDefault(x => x.NAME == name);
if (selectedStudent != null)
{
    txtbox2.Text = selectedStudent.COURSE;
    txtbox3.Text = selectedStudent.STUDENTCLASS;
    txtbox4.Text = selectedStudent.Gpa.ToString();
}
else
{
    MessageBox.Show("Name does not exist");
}