【发布时间】:2014-08-21 17:17:54
【问题描述】:
我在尝试显示数组中的项目/对象列表时遇到了麻烦。
我正在做的是将学生的姓名、姓氏、年龄和科目(属性)标记添加到数组中。如果我以这种方式将 4 个学生添加到列表中,我想在单击“显示”按钮时再次在 RichTextBox 中显示所有学生及其属性。
如何在“displayAll_Click”功能中进行?我必须使用某种for循环吗?任何帮助将不胜感激。
我有以下代码:
在这个函数中,我将学生添加到数组中:
private void btnAdd_Click(object sender, EventArgs e)
{
// Create new student and assign name etc provided by user
Student _Student = new Student();
_Student.Name = txtName.Text;
_Student.Surname = txtSurname.Text;
_Student.Age = Convert.ToInt32(txtAge.Text);
_Student.ITMark = Convert.ToInt32(txtIT.Text);
_Student.MathMark = Convert.ToInt32(txtMath.Text);
_Student.EngMark = Convert.ToInt32(txtEng.Text);
MessageBox.Show("Student added.");
// Increase counter and display how many students added so far
CountStudents++;
Average = Convert.ToInt32(txtIT.Text) + Convert.ToInt32(txtMath.Text) + Convert.ToInt32(txtEng.Text);
_Student.AverageMark = Average / 3;
//Display Student's properties in the richBox
richTextBox1.Text = ("Student: " + Convert.ToString(CountStudents) +
"\nName: " + _Student.Name +
"\nSurname: " + _Student.Surname +
"\nAge: " + _Student.Age +
"\nStudent Average: " + Convert.ToString(_Student.AverageMark));
//Add the newly added student to the ClassList array
ClassList[CountStudents - 1] = _Student;
//Clear the list after student is added
txtAge.Clear();
txtName.Clear();
txtSurname.Clear();
txtIT.Value = 0;
txtMath.Value = 0;
txtEng.Value = 0;
txtName.Focus();
}
在这个函数中,我想显示所有添加的学生,但是如何添加?
private void displayAll_Click(object sender, EventArgs e)
{
List<Student> _StudentList = new List<Student>();
Student _Student = new Student();
_Student.Name = txtName.Text;
_Student.Surname = txtSurname.Text;
_Student1.Age = Convert.ToInt32(txtAge.Text);
_Student.ITMark = Convert.ToInt32(txtIT.Text);
_Student.MathMark = Convert.ToInt32(txtMath.Text);
_Student.EngMark = Convert.ToInt32(txtEng.Text);
for (int i = 0; i < _StudentList; i++)
{
richTextBox1.Text = ("Student: " + Convert.ToString(CountStudents) +
"\nName: " + _Student.Name +
"\nSurname: " + _Student.Surname +
"\nAge: " + _Student.Age +
"\nStudent Average: " + Convert.ToString(_Student.AverageMark));
i++;
}
//Displaying all the students
MessageBox.Show("Display all students.");
}
【问题讨论】: