举例如下
当前窗体类有一个私有变量容器
private List<StudentExt> list = null;
- 首先实现一个排序接口,假如按照姓名的降序排列:
class NameDesc : IComparer<StudentExt>
{
public int Compare(StudentExt x, StudentExt y)
{
return y.StudentName.CompareTo(x.StudentName);
}
}
-
注意,由于是降序排列,因此接口的比较方法返回时候y在前面
-
注意接口的泛型<> 是StudentExe,就是要进行排序的元素类型
- 在“按姓名降序排列”的按钮后台实现功能
//姓名降序
private void btnNameDESC_Click(object sender, EventArgs e)
{
if (this.list == null || this.dgvStudentList.RowCount == 0) return;//防止误操作
this.list.Sort(new NameDesc()); //调用变量的sort方法,参数是接口实现类
this.dgvStudentList.DataSource = null; //将原来的填充数据情况
this.dgvStudentList.DataSource = list; //重新设置数据源
}