我有一个注册学生分数的小程序。标记以richtextbox1
这种格式添加到 a
ID name sname DOB average
当填充文本框一时,我想按最高平均成绩对这些数据进行排序并将其显示在richtextbox2
我知道要将数据从一个控件传递到另一个控件,我可以执行以下操作
richtextbox2.text = rixhtextbox1.text
但是我发现很难对数据进行排序我应该使用什么方法?
我有一个注册学生分数的小程序。标记以richtextbox1
这种格式添加到 a
ID name sname DOB average
当填充文本框一时,我想按最高平均成绩对这些数据进行排序并将其显示在richtextbox2
我知道要将数据从一个控件传递到另一个控件,我可以执行以下操作
richtextbox2.text = rixhtextbox1.text
但是我发现很难对数据进行排序我应该使用什么方法?
如果您对填充richtextbox1 的对象进行排序,而不是尝试拆分和解析richtextbox1 的文本,那会更好。
假设你有一个学生名单
List<Student> studentList = new List<Student>();
该列表可以使用类似于以下内容进行排序:
StringBuilder sb = new StringBuilder();
studentList.OrderByDescending(x=>x.Average)
.ToList()
.ForEach(x=> sb.Append(String.Format("{0} {1} {2} {3} {4}" + Environment.NewLine,x.Id,x.Name,x.Sname,x.DOB,x.Average)));
richTextBox2.Text = sb.ToString();
我会将这些数据放在更好的控件中,例如列表视图或数据网格视图。您可以通过隐藏列标题、更改行边框颜色(或完全隐藏它们)以及更改选择模式来使其看起来像一个文本框。这样,您可以使用以下方式使用内置排序:
colAverage.SortMode = DataGridViewColumnSortMode.Descending;
或者,如果您不喜欢使用富文本框,您将需要从该文本框中获取数据,将其放入可排序的集合(数组、列表、字典)中,对其进行排序,然后使用填充第二个文本框。