我不能让我的最后一个索引成为第一个索引 C#

Joe*_*lad 3 c#

我有一个数组列表,我正在从我制作的另一种方法中复制它,但我只需要反转它并将最后一个值交换为第一个值。我曾考虑过这样做,但由于某种原因,Prepend它根本不起作用。RemoveAt正在工作。有没有替代我正在做的事情可以完成这项工作?

List<double> pointy = new List<double>
            {
                0,
                FrameHeight-24,
                FrameHeight-24+2,
                FrameHeight-24+2,
                FrameHeight-24+2-3,
                FrameHeight-24+2-3,
                FrameHeight-24+2-3+1,
                FrameHeight-24+2-3+1+2,
                FrameHeight-24+2-3+1+2,
                FrameHeight-24+2-3+1,
                FrameHeight-24+2-3,
                FrameHeight-24+2-3,
                FrameHeight-24+2,
                FrameHeight-24+2,
                FrameHeight-24+2+2,
                FrameHeight,
                FrameHeight,
                0,
                0
            };

            pointy.Prepend(pointy[(pointy.Count) - 1]).ToList();
            pointy.RemoveAt((pointy.Count)-1);
            pointy.Reverse();
Run Code Online (Sandbox Code Playgroud)

Dan*_*röm 5

如果您研究文档,正如其他人链接的那样,您会发现 Prepend() 和 ToList() 与您想象的完全不同,特别是,在不使用返回的情况下调用 .ToList() 绝对没有意义价值。

相反,List 类上已经存在一个方法,它完全符合您的要求:

pointy.Insert(0, pointy[pointy.Count - 1]);
Run Code Online (Sandbox Code Playgroud)

或者

pointy.Insert(0, pointy.Last());
Run Code Online (Sandbox Code Playgroud)

完整方法是

public void ChangeList(List<double> arrayList)
        {
            arrayList.Insert(0, arrayList.Last());
            arrayList.RemoveAt(arrayList.Count - 1);
            arrayList.Reverse();
        }
Run Code Online (Sandbox Code Playgroud)