根据对象值之一对对象类型的数组进行排序
我有一个名为学生的班级,该班级有两个元素(姓名,ID)。 在我的主课中,我在一个数组中创建了大约 10 个学生,我称之为学生,
现在我想根据 ID 或名称对学生数组进行排序!
如果我使用这行代码,
array.sort(students);
有没有办法使用排序方法并选择我想要对数组进行排序的元素???
i have a class called student, the class have two elements (Name, ID).
in my main class, i have created about 10 students in an array i called it students,
now i want to sort the the students array respecting the ID, or the name!!
if i used this line of code
array.sort(students);
is there a way to use the sort method and choose which element i want to sort the array with???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用这样的东西:
您可以定义比较器函数,但是您想要获得不同的排序顺序。
You could use something like this:
You can define the comparator function however you want to get different sorting orders.
我会为此使用一个列表。
然后使用 LINQ 对该列表进行排序
,其中
s
是Student
对象I would use a list for this.
then sort that list with LINQ
where the
s
is aStudent
object如果是数组,最有效的方法是使用 Array.Sort:
If it’s an array, the most efficient way is to use
Array.Sort
:你可以使用 linq:
you can use linq:
虽然我也更喜欢 LINQ 解决方案,但您也可以让您的 Student 类实现 IComparable,这可以为您提供更复杂的排序选项,而不必每次都编写内联函数。
While I also prefer the LINQ solution, you could alternatively make your Student class implement IComparable, which could give you more complex sorting options without having to write an in-line function every time.