将数据从一个richtextbox传递到另一个richtextbox,并按降序排序

本文关键字:richtextbox 另一个 排序 降序 一个 数据 | 更新日期: 2023-09-27 18:05:02

我有一个注册学生分数的小程序。标记以以下格式添加到richtextbox1

ID         name         sname         DOB         average

当文本框1被填充时,我想按最高平均等级对这些数据进行排序,并将其显示在richtextbox2

我知道要将数据从一个控件传递到另一个控件,我可以执行以下操作

richtextbox2.text = rixhtextbox1.text

但是我发现很难对数据进行排序我应该用什么方法呢?

将数据从一个richtextbox传递到另一个richtextbox,并按降序排序

如果您对您正在填充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();

我会把数据放在一个更好的控件,如listview或datagridview。通过隐藏列标题、更改行边框颜色(或完全隐藏它们)和更改选择模式,可以使其看起来像一个文本框。这样,您就可以使用内置排序,例如:

colAverage.SortMode = DataGridViewColumnSortMode.Descending;

或者,如果您对使用富文本框死守,则需要从该文本框中获取数据,将其放入可排序集合(数组、列表、字典)中,对其进行排序,然后使用它来填充第二个文本框。