`
ah_fu
  • 浏览: 227915 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

一个遍历C#中多维数组的函数(不太菜的菜鸟级)

阅读更多
     大家看见这个标题的时候,肯定以为我在侮辱你的智商。遍历数组谁不会?
    只是此处的遍历略有不同:在基于反射的程序中,遍历多维数组 的每个元素,并且得知是访问了哪个下标下的元素。
   写完以后,还是觉得我的方法笨拙了点,希望大虾们能告诉我更好的办法。
   废话少说,先贴代码:
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#作为一种现代的、面向对象的编程语言,提供了多种方法来操作和遍历数组。本教程将深入讲解C#中的数组遍历,这对于初学者理解如何处理数组至关重要。 一、数组的基本概念 在C#中,数组是一系列相同类型数据的有序...

    JS实现遍历不规则多维数组的方法

    在上述描述中,有一个简单的不规则多维数组示例data。data是一个对象,包含了三个属性a、b和c。属性a和c的值是对象,而属性b的值也是一个对象,但属性b内部的每个属性的值又是基本数据类型。要遍历这个data对象,...

    易语言赋值定义多维数组

    在易语言中,数组是存储一系列相同类型数据的数据结构,而多维数组则是数组的一种扩展,可以理解为数组的数组,允许我们在一个变量中存储多个有序的数据集合。 在"易语言赋值定义多维数组"这个主题中,我们将深入...

    数据结构中有关多维数组的课程设计

    在"何爽数据结构课程设计.wps"这个文档中,可能会包含更具体的任务说明,例如实现一个特定的多维数组操作函数,或者设计一个使用多维数组的数据结构来解决特定问题。这份课程设计将提供一个实际操作的平台,帮助你将...

    易语言重定义多维数组

    在处理多维数组时,可能会用到这个函数来确定数组的边界或者在遍历过程中做比较。 - “pInt”和“pInts”可能是指指向整数类型的指针。在易语言中,指针用于存储内存地址,可以用来直接访问和修改内存中的数据。在...

    VB 多维数组实例

    在编程语言Visual Basic (VB) 中,多维数组是一种存储数据的有效方式,它允许程序员在一个变量中存储多个数据集合。这种数据结构对于处理表格、矩阵或其他具有多个维度的数据非常有用。本篇将深入探讨VB中的多维数组...

    thinkPHP中多维数组的遍历方法

    本篇将详细介绍如何在ThinkPHP中遍历多维数组,以及如何利用`foreach`语句实现这一功能。 在ThinkPHP中,遍历多维数组的核心工具是`foreach`循环。`foreach`循环适用于遍历任何类型的数组,包括一维数组和多维数组...

    C#获取多维数组的行数与列数.rar

    在C#编程语言中,多维数组是一种存储结构,它允许我们组织数据成多个维度,如一维、二维甚至更多维度。本示例主要聚焦于二维数组,它类似于表格,有行和列的概念。理解如何获取二维数组的行数和列数是进行数组操作时...

    设计并模拟实现整型多维数组类型

    在这个课程设计中,我们将深入理解多维数组的概念,并通过编程实现一个高效的模拟系统。 首先,我们需要理解什么是多维数组。多维数组可以看作是一组一维数组的集合,其中每个一维数组又称为一个“维度”。最常见的...

    VB 做的多维数组实例程序

    在VB(Visual Basic)编程中,多维数组是一种强大的数据结构,它允许程序员存储和处理多个数据集合。这个“VB 做的多维数组实例程序”提供了实践操作多维数组的机会,通过逐步调试,我们可以深入理解其工作原理。 ...

    交错数组和多维数组分析

    在C#等支持交错数组的语言中,可以通过以下方式定义一个交错数组: ```csharp int[][] jaggedArray = new int[3][]; ``` 上述代码定义了一个含有三个元素的交错数组,每个元素都是整型数组。然后可以分别初始化这...

    c#获取多维数组的行数与列数

    在C#编程语言中,多维数组是一种存储结构,它允许我们组织数据成二维或更高维度的形式,类似于表格。在处理这种数据结构时,有时我们需要知道数组的行数和列数,以便更好地理解和操作数据。本篇文章将详细介绍如何在...

    C/C++中传递多维数组的各种方法

    例如,在上面的示例代码中,我们定义了一个二维数组 `score[4][4]`,用于存储四个学生的四门课的成绩。然后,在 `average` 函数和 `search` 函数中,我们使用形参 `float point[][4]` 来接收这个数组。 在 `average...

    PHP foreach遍历多维数组实现方式

    当当前数组环境遍历完毕后,从栈中弹出上一个数组环境继续遍历,直到整个多维数组遍历完成。 在遍历过程中,可能还会遇到一些特殊情况,比如数组中存在空值或者是遍历到数组的最后一个元素。这时,我们需要在遍历...

    遍历任意长度的数组

    本程序可以由用户确定数组的长度,再通过用户输入数组的值,遍历并打印出来

    如何把多维数组[,]切割成一维数组行[]

    - **实现思路**:通过遍历多维数组的每一行,并创建一个新的一维数组来存储该行的元素。 - **示例代码**: ```csharp List[]&gt; intcount = new List[]&gt;(); int t = p.GetLength(p.Rank - 1); for (int i = 0; ...

    php递归遍历多维数组的方法

    这个函数接受两个参数:第一个参数是待遍历的多维数组`$arrResult`,第二个参数`$where`用于记录当前数组元素的位置,帮助在输出中显示元素路径。函数体内使用`while`循环和`each`函数逐个处理数组元素。如果当前...

    易语言循环遍历

    在易语言中,循环遍历是程序控制流程的重要组成部分,它允许我们重复执行一段代码直到满足特定条件为止。循环遍历在处理数组、列表或其他集合数据时尤为常见,下面我们将深入探讨易语言中的几种主要循环结构及其应用...

Global site tag (gtag.js) - Google Analytics