c#遍历数组倒序
时间: 2023-07-13 15:25:43 浏览: 225
好的,您可以使用 `for` 循环倒序遍历一个数组。具体的代码实现如下:
```csharp
int[] arr = { 1, 2, 3, 4, 5 };
for (int i = arr.Length - 1; i >= 0; i--)
{
Console.WriteLine(arr[i]);
}
```
上述代码中,我们使用 `arr.Length` 获取数组的长度,然后从数组的最后一个元素开始循环,依次访问数组中的每一个元素。最后输出的结果就是倒序遍历数组的结果。
输出结果为:
```
5
4
3
2
1
```
希望能够帮到您!
相关问题
point数组遍历,奇数行从左往右遍历,偶数行从右往左遍历,用C#怎么实现
语言描述算法实现可以是这样的:
1. 定义一个变量row用来存储当前遍历到的行数,初始值为0。
2. 遍历point数组,遍历顺序为从上到下、从左到右。
3. 遍历每一行时,判断当前行是否为奇数行,如果是,则从左向右遍历,否则从右向左遍历。
4. 在遍历每个元素时,对于奇数行,按照当前列的顺序存储在一个临时数组tempArr中;对于偶数行,按照倒序存储在tempArr中。
5. 遍历完成后,将tempArr中存储的元素按照顺序拷贝回原数组中。
下面是代码实现:
```
int rows = sizeof(point) / sizeof(point[0]); // 数组长度
int cols = sizeof(point[0]) / sizeof(int); // 数组宽度
// 循环遍历数组
for (int i = 0; i < rows; i++) {
int row = i; // 当前行数
if (row % 2 == 0) { // 偶数行,从右向左遍历
int tempArr[cols]; // 临时存储当前行的数据
for (int j = cols - 1; j >= 0; j--) {
tempArr[j] = point[row][j];
}
// 将临时数组中的元素拷贝回原数组中
memcpy(point[row], tempArr, cols * sizeof(int));
} else { // 奇数行,从左向右遍历
int tempArr[cols];
for (int j = 0; j < cols; j++) {
tempArr[j] = point[row][j];
}
memcpy(point[row], tempArr, cols * sizeof(int));
}
}
```
用foreach少遍历最后一个数组
在C#中,如果你有一个数组列表并且你想避免在 foreach 循环中遍历最后一个元素(通常因为你知道它的索引或者不需要处理它),你可以选择不包含这个元素的方式创建一个新的迭代器。这可以通过 LINQ 的 SkipLast 方法或 Array 类型的 Length 属性结合递减索引来实现。
例如,假设你有一个字符串数组 `string[] array`,你可以这样做:
```csharp
// 如果你不想遍历最后一个元素
for (int i = 0; i < array.Length - 1; i++)
{
Console.WriteLine(array[i]);
}
// 或者使用 LINQ
string[] subArray = array.Take(array.Length - 1).ToArray(); // 创建一个新的不包括最后一个元素的子数组
foreach (string s in subArray)
{
Console.WriteLine(s);
}
```
如果你想确保不会遗漏掉最后一个元素,但又不想显式指定索引,你可以考虑用倒序遍历数组:
```csharp
for (int i = array.Length - 1; i >= 0; i--)
{
Console.WriteLine(array[i]);
}
```
阅读全文