定义学生类。
public class Student
{
public string Name { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
}
自定义比较器AgeComparer,实现接口IComparer<Student>,对学生年龄进行比较。
public class AgeComparer:IComparer<Student>
{
public int Compare(Student x, Student y)
{
return x.Age.CompareTo(y.Age);
}
}
自定义比较器NameComparer,实现接口IComparer<Student>,对学生姓名进行比较。
public class NameComparer:IComparer<Student>
{
public int Compare(Student x, Student y)
{
return x.Name.CompareTo(y.Name);
}
}
调用List<T>.Sort方法实现stuList按照学生的年龄与姓名排序。
static void Main(string[] args)
{
List<Student> stuList = new List<Student>();
stuList.Add(new Student() { Name = "aki", Sex = "Man", Age = 18 });
stuList.Add(new Student() { Name = "cki", Sex = "Woman", Age = 20 });
stuList.Add(new Student() { Name = "dki", Sex = "Woman", Age = 16 });
stuList.Add(new Student() { Name = "bki", Sex = "Man", Age = 21 });
stuList.Add(new Student() { Name = "fki", Sex = "Woman", Age = 19 });
stuList.Sort(new AgeComparer());
Console.WriteLine("按照年龄排序:");
foreach (Student stu in stuList)
{
Console.WriteLine("Name=" + stu.Name + ";Sex=" + stu.Sex + ";Age=" + stu.Age);
}
stuList.Sort(new NameComparer());
Console.WriteLine();
Console.WriteLine("按照名称排序:");
foreach (Student stu in stuList)
{
Console.WriteLine("Name=" + stu.Name + ";Sex=" + stu.Sex + ";Age=" + stu.Age);
}
}
代码执行结果如下。

本文介绍如何在C#中定义一个学生类,并通过自定义比较器来实现对学生的年龄和姓名进行排序。通过实例演示了如何创建类、实现接口和使用List<T>.Sort方法。
97

被折叠的 条评论
为什么被折叠?



