我正在尝试编写一个方法,将数组中第一个和最后一个字符之间的所有字符向上移动一个位置。此外,第一个到最后一个字符必须“移动”到数组的第二个位置([1])。简而言之,我希望'abcdef'变成'aebcdf'。 以下是我的解决方案:
if (myArray.Length > 3)
{
char savechar = myArray[myArray.Length - 2];
for (int t = 1; t < (myArray.Length - 2); t++)
{
myArray[t++] = myArray[t];
}
myArray[1] = savechar;
}
问题在于,它只是将第二个字符移到末尾,而不是将所有字符向上移动一个位置。(我知道它为什么这样做,但我不知道该如何解决)。有人能帮忙吗?
e
)存储在临时变量中。使用一次Array.Copy
调用来移动元素1、...、n-2。将临时变量中的元素放置在数组插槽#1中。完成... - user2819245List<char>
,它将在您 添加 或 移除 其他元素时进行转移。或者在移动完成后使用临时列表,并将其 转换回数组。 - John Wu