我需要向后移动一个数组,所以我有这样的代码:
for (int i = myArray.Length - 1; i >= 0; i--)
{
// Do something
myArray[i] = 42;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
更新:我希望C#可能有一些内置机制,如:
foreachbackwards (int i in myArray)
{
// so easy
}
Run Code Online (Sandbox Code Playgroud)
更新2:有是更好的方法.符文获奖:
for (int i = myArray.Length; i-- > 0; )
{
//do something
}
//or
for (int i = myArray.Length; i --> 0; )
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
在常规C中看起来更好(感谢Twotymz):
for (int i = lengthOfArray; i--; )
{
//do something
}
Run Code Online (Sandbox Code Playgroud) 对于那些有课程开发经验的人:关于数组的最佳策略是什么?
我见过一些学校在变量和控制结构之后教授数组,甚至在教学功能之前.这允许教授一些基本的算法等.然而,它带来了如何将数组传递给函数的问题,因此有必要回到数组指针教授和补丁.
另一个选择是从变量和控制结构转到函数,然后教指针,一旦你有指针,从头开始教数组,然后使用它来获得动态内存分配.
对我来说第二个选项更有意义,因为与简单变量不同,使用数组很容易"走出界限",但是尚未了解内存和指针的学生可能无法理解这些界限之外的内容.
但是,我很想知道其他人的想法.