0

整数を追加するにはどうすればよいですか。目的を表示するためのカウント変数?

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();

    }
4

4 に答える 4

0

コードの実際の例を次に示します

//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 の代わりに複数の異なるオプションを簡単に追加できます。
于 2013-03-16T11:47:35.927 に答える
0

Textメッセージをラベルのプロパティに割り当てます。

lblnoOfStudents.Text = string.Format("Students: {0}", counter);
于 2013-03-16T11:41:32.287 に答える
0
lblnoOfStudents.Text = counter.ToString();

これにより、ラベルのテキストがその番号に変更されます。既存のテキストの最後に追加したい場合は、次を使用します+=

lblnoOfStudents.Text += counter.ToString();
于 2013-03-16T11:41:43.643 に答える
0

.Textコントロールのプロパティを使用できますLabel。お気に入り;

Label コントロールのテキスト コンテンツを取得または設定します。

lblnoOfStudents.Text = counter.ToString();

これにより、変数の文字列表現でラベル テキストが変更されますcounter

于 2013-03-16T11:43:00.340 に答える