随笔-81  评论-892  文章-0  trackbacks-56

首先我们来看一段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();

 

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

 

 

posted on 2004-11-25 17:25 DDL 阅读(781) 评论(0)  编辑 收藏 网摘 所属分类: .NET




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-07-31 18:36 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: