根据对象值之一对对象类型的数组进行排序

时间:2010-10-08 21:49:48

标签: c# arrays sorting object elements

我有一个名为student的类,该类有两个元素(Name,ID)。 在我的主要课程中,我创建了大约10名学生,我称之为学生,

现在我想根据ID或名字排序学生数组!!

如果我使用这行代码

array.sort(students);

有没有办法使用sort方法并选择我想用???

对数组进行排序的元素

5 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

Array.Sort(array, (s1, s2) => s1.Name.CompareTo(s2.Name));

您可以定义比较器功能,但是您希望获得不同的排序顺序。

答案 1 :(得分:1)

我会使用一个清单。

List<Student> students = new List<Student>{ new Student(), new Student(), new Student() }

然后使用LINQ

对该列表进行排序
var sortedStuds = students.OrderBy(s => s.ID).ToList();

其中sStudent对象

答案 2 :(得分:1)

如果是数组,最有效的方法是使用Array.Sort

Array.Sort(array, (s1, s2) => s1.Name.CompareTo(s2.Name));

答案 3 :(得分:0)

你可以使用linq:

sortedStudents1 = students.OrderBy(s=>s.Name).ToList();
sortedStudents2 = students.OrderBy(s=>s.ID).ToList();

答案 4 :(得分:0)

虽然我也更喜欢LINQ解决方案,但您也可以让您的Student类实现IComparable,这可以为您提供更复杂的排序选项,而无需每次都编写内联函数。