我是使用C#进行编程的初学者,而我的讲师给了我们一个棘手的项目。 我已经成功完成了除阵列之外的所有内容!
长话短说,我有5个文本框,所有文本框都从用户那里获取输入。这些信息将存储到一个数组中,然后按顺序列出(出生日期顺序)显示在一个富文本框中,我列出了我在下面设法做的代码:
private void button2_Click(object sender, EventArgs e)
{
{
bc[0] = new Student();
bc[1] = new Student(Convert.ToInt32(textBox1.Text), "Mary", "Ford");
bc[2] = new Student(1254, "Andrew", "White");
bc[3] = new Student(1256, "Liam", "Sharp", " ");
bc[4] = new Student(1266, "Michael", "Brown", " ");
for (int i = 0; i < 5; i++)
{
string bcString = bc[i].studentToString() + "\r\n";
richTextBox1.AppendText(bcString);
}
}
}
CLASS "Student":
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assignment_2
{
class Student
{
private int accountNum;
private string firstName;
private string lastName;
private string balance;
// first constructor
public Student()
{
accountNum = 0;
firstName = "";
lastName = "";
balance = "";
}
// second constructor
public Student(int accValue, string firstNameVal, string lastNameVal)
{
accountNum = accValue;
firstName = firstNameVal;
lastName = lastNameVal;
balance = "";
}
// third constructor
public Student(int accValue, string firstNameVal,
string lastNameVal, string balanceValue)
{
accountNum = accValue;
firstName = firstNameVal;
lastName = lastNameVal;
balance = balanceValue;
}
public int AccountNum
{
get
{
return accountNum;
}
set
{
accountNum = value;
}
}
public string FirstName
{
get
{
return firstName;
}
set
{
firstName = value;
}
}
public string studentToString()
{
return (Convert.ToString(accountNum) + " " + firstName +
" " + lastName + " " + balance);
}
}
}
答案 0 :(得分:1)
让您的班级学生实施IComparable接口,然后对DateOfBirth字段(如果存在)进行排序。此示例适用于AccountNum,但使用DateOfBirth
进行更改应该很简单Student[] bc = new Student[5];
bc[0] = new Student();
bc[1] = new Student(9999, "Mary", "Ford");
bc[2] = new Student(1254, "Andrew", "White");
bc[3] = new Student(1256, "Liam", "Sharp", " ");
bc[4] = new Student(1266, "Michael", "Brown", " ");
// Here the sort on the AccountNum
Array.Sort(bc);
// A StringBuilder instead of the RichTextBox for testing....
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 5; i++)
{
string bcString = bc[i].studentToString() + "\r\n";
sb.Append(bcString);
}
Console.WriteLine(sb.ToString());
CLASS学生:(只是IComparable的部分)
class Student : IComparable
{
.....
public int CompareTo(object obj)
{
if (obj == null) return 1;
Student otherStudent = obj as Student;
if (otherStudent != null)
return this.accountNum.CompareTo(otherStudent.AccountNum);
else
throw new ArgumentException("Object is not a Student");
}
....
}