在列表中的 2 个对象之间交换 c#

问题描述 投票:0回答:1

我正在尝试在列表中的两个对象(学生)之间交换,但我找不到方法

for(int i = 0; i < this.lastPosition; i++)
        {
            if(this.list[i].GetName().CompareTo(this.list[i+1].GetName()) > 0) {
                Student temp = this.list[i];
                this.list[i] = this.list[i+1];
                this.list[i+1] = temp;
            }
        }

这是对象 StudentList:

public class StudentList
{
    public const int MaxStudent = 38;
    private Student[] list;
    private int lastPosition;

还有学生:

public class Student
{
    private string name;
    private string phoneNum;
    Parent parent;

非常感谢您的帮助

c# list object pointers
1个回答
0
投票

您的代码看起来大部分是正确的,但我认为您可能会遇到索引越界错误,因为您正在将 (list[i]) 与下一个元素 (list[i+1]) 进行比较。这意味着当 i 到达倒数第二个元素 (i = lastPosition - 1) 时,您将尝试访问 list[i+1],这是越界的。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.