首先我们来看一段java的代码

 

public class Untitled1
{
  
public static void main(String args[])
  
{
    
int [][] arr1={{1,2}{3,4}{5,6}{7,8}};
    
for(int i=0;i<arr1.length;i++)
    
{
      
for(int j=0;j<arr1[i].length;j++)
      
{
        System.
out.println(arr1[i][j]);
      }

    }

  }

}

代码很简单,遍历了二维数组的元素并进行打印。

下面我们试试C#的代码

C#中二维数组的定义方法为[,],数组声明如下

int [,] arr1={{1,2}{3,4}{5,6}{7,8}};

 

我在获取数组的长度时发现了问题

arr1.Length获得的长度是8,而arr1[i].Length的定义不存在。

因为数组都是从Array类继承下来,我在MSDN查了Array类

发现了几个有趣的属性

公共属性Rank

受 .NET Framework 精简版的支持。

获取 Array 的秩(维数)。

公共方法GetLowerBound

受 .NET Framework 精简版的支持。

获取 Array 中指定维度的下限。

公共方法GetUpperBound

受 .NET Framework 精简版的支持。

获取 Array 的指定维度的上限。

我把代码改成了这样

static void Main(string[] args)
        
{
            
            
int [,] arr1={{1,2}{3,4}{5,6}{7,8}};

            
for(int i=0;i<arr1.GetUpperBound(0)-arr1.GetLowerBound(0)+1;i++)
            
{
                
for(int j=0;j<arr1.GetUpperBound(1)-arr1.GetLowerBound(1)+1;j++)
                
{
                    Console.WriteLine(arr1[i,j]);
                }

            }

        
            Console.Read();
        }

 

 完成了以上的功能。代码似乎有些麻烦,我们用交错数组来试试

int [][] arr1=new int [][] 
                        
{
                            
new int[] {1,2},
                            
new int[] {3,4},
                            
new int[] {5,6},
                            
new int[] {7,8,9}
                        }
;
            
for(int i=0;i<arr1.Length;i++)
            
{
                
for(int j=0;j<arr1[i].Length;j++)
                
{
                    Console.WriteLine(arr1[i][j]);
                }

            }

            Console.Read();

 

哈哈,同样可以达到目的。而且我可以使用长度不同的数组。