C# &引用;轮换;顺时针数组中的值

C# &引用;轮换;顺时针数组中的值,c#,arrays,loops,C#,Arrays,Loops,首先,感谢您抽出时间来看我的问题 我有一个字母的csv文件,我需要获取数组的最后一个字母,并将其移动到开头,同时“推”其他字母 例如 --来源-- a、 b,c,d[e] --旋转-- e、 a、b、c、d for (var i = 0; i < Array.Length - 1; i++) { temp = Array[Array.Length]; Array[Array.Le

首先,感谢您抽出时间来看我的问题

我有一个字母的csv文件,我需要获取数组的最后一个字母,并将其移动到开头,同时“推”其他字母

例如

--来源-- a、 b,c,d[e]

--旋转-- e、 a、b、c、d

            for (var i = 0; i < Array.Length - 1; i++)
            {
                temp = Array[Array.Length];
                Array[Array.Length] = Array[Array.Length - 1];
                Array[i + 1] = Array[i];
                Array[i] = temp;

            }
for(var i=0;i

为此,我知道并不是所有字符都会受到影响,但我想不出一个循环来移动所有值

您可以使用模
%
运算符将数字向右移动:

int[] arr = { 1, 2, 3, 4, 5 };
int[] newArr = new int[arr.Length];
for (int i = 0; i < arr.Length; i++)
{
    newArr[(i + 1) % newArr.Length] = arr[i];
}
例如:

int[] arr = { 1, 2, 3, 4, 5 };

rightShiftArray(ref arr, 2);
上面的代码将初始数组
arr
中的数字向右移动两次,并提供以下输出:

arr={4,5,1,2,3}


您可以使用模运算符将数字向右移位:

int[] arr = { 1, 2, 3, 4, 5 };
int[] newArr = new int[arr.Length];
for (int i = 0; i < arr.Length; i++)
{
    newArr[(i + 1) % newArr.Length] = arr[i];
}
例如:

int[] arr = { 1, 2, 3, 4, 5 };

rightShiftArray(ref arr, 2);
上面的代码将初始数组
arr
中的数字向右移动两次,并提供以下输出:

arr={4,5,1,2,3}


如果不想分配新阵列,可以使用以下代码:

newValue = Array[Array.Length-1];
for (var i = 0; i < Array.Length; i++)
{
  temp = Array[i];
  Array[i] = newValue;
  newValue = temp;
}
newValue=Array[Array.Length-1];
for(var i=0;i
如果不想分配新阵列,可以使用以下代码:

newValue = Array[Array.Length-1];
for (var i = 0; i < Array.Length; i++)
{
  temp = Array[i];
  Array[i] = newValue;
  newValue = temp;
}
newValue=Array[Array.Length-1];
for(var i=0;i
使用
复制
方法:

int last = arr[arr.Length - 1];
Array.Copy(arr, 0, arr, 1, arr.Length - 1);
arr[0] = last;

使用
复制
方法:

int last = arr[arr.Length - 1];
Array.Copy(arr, 0, arr, 1, arr.Length - 1);
arr[0] = last;

首先,索引
Array.Length中没有元素。最后一个索引比这个小1。首先考虑逻辑——如果必须写下来——然后编写代码来实现该逻辑。首先,将最后一个元素放在临时位置。然后从最后一个元素到第一个元素,将每个元素移动到下一个索引。最后,将temp值移动到第一个元素中。所以,你的循环中有属于外部的代码,你的索引是错误的,你的循环是反向的。你为什么不使用列表,这将很容易解决第一件事,索引
数组中没有元素。长度
。最后一个索引比这个小1。首先考虑逻辑——如果必须写下来——然后编写代码来实现该逻辑。首先,将最后一个元素放在临时位置。然后从最后一个元素到第一个元素,将每个元素移动到下一个索引。最后,将temp值移动到第一个元素中。所以,你的循环中有属于外部的代码,你的索引是错误的,你的循环是反向的。你为什么不使用列表呢,这很容易解决