大家看见这个标题的时候,肯定以为我在侮辱你的智商。遍历数组谁不会?
只是此处的遍历略有不同:在基于反射的程序中,遍历多维数组 的每个元素,并且得知是访问了哪个下标下的元素。
写完以后,还是觉得我的方法笨拙了点,希望大虾们能告诉我更好的办法。
废话少说,先贴代码:
public static void ShowArray(Array item)
{
int nRank = item.Rank;
int i, j;
int[,] des = new int[nRank, 2];
int[] loc = new int[nRank];
for (i=0; i<nRank; i++)
{
des[i,0] = item.GetLowerBound(i);
des[i,1] = item.GetUpperBound(i);
loc[i] = des[i,0];
}
string strTemp;
while (loc[0]<=des[0,1])
{
strTemp = "item(";
for (i=0; i<nRank-1; i++)
{
strTemp += loc[i] + ",";
}
strTemp += loc[i] + ")=" + item.GetValue(loc).ToString();
Console.WriteLine(strTemp);
loc[i]++;
for (j=nRank-1; j>0; j--)
{
if (loc[j]>des[j,1])
{
loc[j] = des[j,0];
loc[j-1]++;
}
}
}
}
以下是测试代码:
int[,,] arr = new int[,,]
{
{
{1,2},
{3,4},
{5,6}
},
{
{7,8},
{9,10},
{11,12}
}
};
ShowArray(arr);
以下是运行结果:
item(0,0,0)=1
item(0,0,1)=2
item(0,1,0)=3
item(0,1,1)=4
item(0,2,0)=5
item(0,2,1)=6
item(1,0,0)=7
item(1,0,1)=8
item(1,1,0)=9
item(1,1,1)=10
item(1,2,0)=11
item(1,2,1)=12
分享到:
相关推荐
在C#编程语言中,多维数组是一种非常重要的数据结构,它允许我们存储二维或更高维度的数据。在本教程中,我们将深入探讨如何创建、初始化和操作多维数组,以及如何实现它们的输入和输出。 首先,让我们了解什么是...
C#作为一种现代的、面向对象的编程语言,提供了多种方法来操作和遍历数组。本教程将深入讲解C#中的数组遍历,这对于初学者理解如何处理数组至关重要。 一、数组的基本概念 在C#中,数组是一系列相同类型数据的有序...
在上述描述中,有一个简单的不规则多维数组示例data。data是一个对象,包含了三个属性a、b和c。属性a和c的值是对象,而属性b的值也是一个对象,但属性b内部的每个属性的值又是基本数据类型。要遍历这个data对象,...
在易语言中,数组是存储一系列相同类型数据的数据结构,而多维数组则是数组的一种扩展,可以理解为数组的数组,允许我们在一个变量中存储多个有序的数据集合。 在"易语言赋值定义多维数组"这个主题中,我们将深入...
在"何爽数据结构课程设计.wps"这个文档中,可能会包含更具体的任务说明,例如实现一个特定的多维数组操作函数,或者设计一个使用多维数组的数据结构来解决特定问题。这份课程设计将提供一个实际操作的平台,帮助你将...
在处理多维数组时,可能会用到这个函数来确定数组的边界或者在遍历过程中做比较。 - “pInt”和“pInts”可能是指指向整数类型的指针。在易语言中,指针用于存储内存地址,可以用来直接访问和修改内存中的数据。在...
在编程语言Visual Basic (VB) 中,多维数组是一种存储数据的有效方式,它允许程序员在一个变量中存储多个数据集合。这种数据结构对于处理表格、矩阵或其他具有多个维度的数据非常有用。本篇将深入探讨VB中的多维数组...
本篇将详细介绍如何在ThinkPHP中遍历多维数组,以及如何利用`foreach`语句实现这一功能。 在ThinkPHP中,遍历多维数组的核心工具是`foreach`循环。`foreach`循环适用于遍历任何类型的数组,包括一维数组和多维数组...
在C#编程语言中,多维数组是一种存储结构,它允许我们组织数据成多个维度,如一维、二维甚至更多维度。本示例主要聚焦于二维数组,它类似于表格,有行和列的概念。理解如何获取二维数组的行数和列数是进行数组操作时...
在这个课程设计中,我们将深入理解多维数组的概念,并通过编程实现一个高效的模拟系统。 首先,我们需要理解什么是多维数组。多维数组可以看作是一组一维数组的集合,其中每个一维数组又称为一个“维度”。最常见的...
在VB(Visual Basic)编程中,多维数组是一种强大的数据结构,它允许程序员存储和处理多个数据集合。这个“VB 做的多维数组实例程序”提供了实践操作多维数组的机会,通过逐步调试,我们可以深入理解其工作原理。 ...
在C#等支持交错数组的语言中,可以通过以下方式定义一个交错数组: ```csharp int[][] jaggedArray = new int[3][]; ``` 上述代码定义了一个含有三个元素的交错数组,每个元素都是整型数组。然后可以分别初始化这...
在C#编程语言中,多维数组是一种存储结构,它允许我们组织数据成二维或更高维度的形式,类似于表格。在处理这种数据结构时,有时我们需要知道数组的行数和列数,以便更好地理解和操作数据。本篇文章将详细介绍如何在...
例如,在上面的示例代码中,我们定义了一个二维数组 `score[4][4]`,用于存储四个学生的四门课的成绩。然后,在 `average` 函数和 `search` 函数中,我们使用形参 `float point[][4]` 来接收这个数组。 在 `average...
当当前数组环境遍历完毕后,从栈中弹出上一个数组环境继续遍历,直到整个多维数组遍历完成。 在遍历过程中,可能还会遇到一些特殊情况,比如数组中存在空值或者是遍历到数组的最后一个元素。这时,我们需要在遍历...
本程序可以由用户确定数组的长度,再通过用户输入数组的值,遍历并打印出来
- **实现思路**:通过遍历多维数组的每一行,并创建一个新的一维数组来存储该行的元素。 - **示例代码**: ```csharp List[]> intcount = new List[]>(); int t = p.GetLength(p.Rank - 1); for (int i = 0; ...
这个函数接受两个参数:第一个参数是待遍历的多维数组`$arrResult`,第二个参数`$where`用于记录当前数组元素的位置,帮助在输出中显示元素路径。函数体内使用`while`循环和`each`函数逐个处理数组元素。如果当前...
在易语言中,循环遍历是程序控制流程的重要组成部分,它允许我们重复执行一段代码直到满足特定条件为止。循环遍历在处理数组、列表或其他集合数据时尤为常见,下面我们将深入探讨易语言中的几种主要循环结构及其应用...