这是一个基础问题(我是C#新手),但在C#中是否有一种有效的方法将数组的第一个元素移动到末尾?
我发现了这个问题,它描述了ruby中的.rotate
方法,但我无法找到类似的方法在C#中。
如果我有一个数组:
[1, 2, 3, 4, 5]
在C#中是否有一个函数可以返回:
[2, 3, 4, 5, 1]
提前感谢!
编辑:答案
最好的解决方案是使用LinkedList<T>
,正如许多人建议的那样,并如Alex's answer中所示。他建议的解决方案是使用:
list.AddLast(list.RemoveFirst());
可以在 for 循环 中运行:
void func<T>(LinkedList<T> list, int rotate) {
for(var i = 0; i < rotate; i++) {
list.AddLast(list.RemoveFirst());
}
}
感谢大家的帮助!