我有一个名为student的类,该类有两个元素(Name,ID)。 在我的主要课程中,我创建了大约10名学生,我称之为学生,
现在我想根据ID或名字排序学生数组!!
如果我使用这行代码
array.sort(students);
有没有办法使用sort方法并选择我想用???
对数组进行排序的元素答案 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();
其中s
是Student
对象
答案 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,这可以为您提供更复杂的排序选项,而无需每次都编写内联函数。