C# 将整数添加到标签以便于显示

C# 将整数添加到标签以便于显示,c#,C#,如何添加整数,即用于显示的计数变量 int counter = 0; private void btnDisplay_Click(object sender, EventArgs e) { StreamReader myReader = new StreamReader("StudentRecords.txt"); while (myReader.EndOfStream == false) { strin

如何添加整数,即用于显示的计数变量

int counter = 0;
    private void btnDisplay_Click(object sender, EventArgs e)
    {

        StreamReader myReader = new StreamReader("StudentRecords.txt");

        while (myReader.EndOfStream == false)
        {
            string[] storageArray = myReader.ReadLine().Split('#');
            if (storageArray[0] == "S")
            {
                lstDisplay.Items.Add("");
                lstDisplay.Items.Add("Student Name: " + storageArray[1]);
                lstDisplay.Items.Add("Student Number: " +storageArray[2]);
                lstDisplay.Items.Add("Attendance: " + storageArray[5]);
                lstDisplay.Items.Add("Modules: ");
                counter++;
            }
            else if (storageArray[0] == "M")
            {
                lstDisplay.Items.Add(storageArray[1]);

            }

        }

        //label to be used to display the number of students
        lblnoOfStudents. ??
        myReader.Close();

    }

将邮件分配到标签的
文本
属性:

lblnoOfStudents.Text = string.Format("Students: {0}", counter);
这会将标签上的文本更改为该数字。如果要将其附加到现有文本的末尾,请使用
+=

lblnoOfStudents.Text += counter.ToString();
您可以使用
标签
控件的属性。喜欢

获取或设置Label控件的文本内容


这将使用
计数器变量的字符串表示形式更改标签文本。

以下是代码的工作示例

//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{

    StreamReader myReader = new StreamReader("StudentRecords.txt");
    int counter = 0;
    while (myReader.EndOfStream == false)
    {
        string[] storageArray = myReader.ReadLine().Split('#');
        if (storageArray[0] = "S")
        {
            lstDisplay.Items.Add("");
            lstDisplay.Items.Add("Student Name: " + storageArray[1]);
            lstDisplay.Items.Add("Student Number: " +storageArray[2]);
            lstDisplay.Items.Add("Attendance: " + storageArray[5]);
            lstDisplay.Items.Add("Modules: ");
            counter++;
        }
        else if (storageArray[0] == "M")
        {
            lstDisplay.Items.Add(storageArray[1]);

        }

    }

    //label to be used to display the number of students
    lblnoOfStudents.Text = counter.ToString();
    myReader.Close();

}
编辑:我觉得我应该改进我的答案,所以我想我应该改进你的代码

//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{

    using(StreamReader myReader = new StreamReader("StudentRecords.txt"))
    {
        int counter = 0;
         while (!myReader.EndOfStream)
         {
             string[] storageArray = myReader.ReadLine().Split('#');
              switch(storageArray[0])
              {
              case "S":

                   lstDisplay.Items.Add("");
                   lstDisplay.Items.Add("Student Name: " + storageArray[1]);
                   lstDisplay.Items.Add("Student Number: " +storageArray[2]);
                   lstDisplay.Items.Add("Attendance: " + storageArray[5]);
                   lstDisplay.Items.Add("Modules: ");
                   counter++;
                    break;
               case "M":
                     lstDisplay.Items.Add(storageArray[1]);
                    break;
              default:
                    break;
             }
         }
    }

    //label to be used to display the number of students
    lblnoOfStudents.Text = counter.ToString();
    }
}
  • 使用将自动为您关闭读卡器
  • ==false
    为 冗余,因为您已经可以从 我是接线员
  • switch语句将便于您添加 多个不同的选项,而不是长else if

作为旁注:
string.Format
{0}
替换为
计数器
变量值,因此它将产生类似
的结果,学生:1024
如果您想去掉类似的内容,请将
CultureInfo.InvariantCulture
作为
Format()
的第一个参数传递。这样你就不会得到
1024
1024
或类似的答案,而不是
1024
。因为几分钟前已经给出了完全相同的答案。我仍然看不到相同的答案。我不仅在他的函数中移动了计数器,因为它似乎不需要在外部移动,我还提供了可以替换他的函数的代码。太好了,你刚才从问题到答案复制了很多不必要的代码!还是-我说了一句…很公平,我觉得我已经解释清楚了myself@Sayse,在建议提问者使用重构的代码之前,您应该测试重构的代码。删除
==false
很好,但忘记添加
运算符否定条件并中断代码。@AndreSmith-如果您两次单击“显示”按钮,则第二个将无法正常工作。不必担心,我使用了第一个…”。。。不管怎样,这就是我所需要的:)看看我编辑过的答案,安德烈,来学习一些其他可以改进功能的方法
//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{

    StreamReader myReader = new StreamReader("StudentRecords.txt");
    int counter = 0;
    while (myReader.EndOfStream == false)
    {
        string[] storageArray = myReader.ReadLine().Split('#');
        if (storageArray[0] = "S")
        {
            lstDisplay.Items.Add("");
            lstDisplay.Items.Add("Student Name: " + storageArray[1]);
            lstDisplay.Items.Add("Student Number: " +storageArray[2]);
            lstDisplay.Items.Add("Attendance: " + storageArray[5]);
            lstDisplay.Items.Add("Modules: ");
            counter++;
        }
        else if (storageArray[0] == "M")
        {
            lstDisplay.Items.Add(storageArray[1]);

        }

    }

    //label to be used to display the number of students
    lblnoOfStudents.Text = counter.ToString();
    myReader.Close();

}
//int counter = 0; may as well move inside as it looks to be localised
private void btnDisplay_Click(object sender, EventArgs e)
{

    using(StreamReader myReader = new StreamReader("StudentRecords.txt"))
    {
        int counter = 0;
         while (!myReader.EndOfStream)
         {
             string[] storageArray = myReader.ReadLine().Split('#');
              switch(storageArray[0])
              {
              case "S":

                   lstDisplay.Items.Add("");
                   lstDisplay.Items.Add("Student Name: " + storageArray[1]);
                   lstDisplay.Items.Add("Student Number: " +storageArray[2]);
                   lstDisplay.Items.Add("Attendance: " + storageArray[5]);
                   lstDisplay.Items.Add("Modules: ");
                   counter++;
                    break;
               case "M":
                     lstDisplay.Items.Add(storageArray[1]);
                    break;
              default:
                    break;
             }
         }
    }

    //label to be used to display the number of students
    lblnoOfStudents.Text = counter.ToString();
    }
}