zoukankan      html  css  js  c++  java
  • C# 动态2维数组

    C#数组并不是动态的,你必须自己来把他变成动态结构,除非你使用其他类。初始化一个2维数组,有两种方法:  
      方法1:你可以假设一个初始长度,在对数组添加元素的时候,你都需要对数组做边界检查,如果数组尺寸不够了,你需要创建一个新的数组,然后复制原来的数组到新的数组。  
      初始化代码如:   string[,]     myStrings   =   new   string[10,10];   //假设元素的类型为string  


      方法2:初始化第一维长度为0,在每次插入新的原始的时候,都复制一个新的数组,使它的长度等于原来数组长度+1,这里假定第二维是不变的(因为同时对两个维进行扩展,没有太大的意义,同时增加了复杂度,即使是DataTable,也是先要设置列数,再添加行)  


      初始化代码如:   string[,]   myStrings   =   new   string[0,10];  
      实现数组动态的代码如:  
                                    插入新的行的操作:  
                                    public   void   Add(string[]   dataString)  
                                    {  
                                    int   rowCount   =   myStrings.GetUpperBound(0);  
                                    int   colCount   =   myStrings[0].GetUpperBound(1);  
                                    string[,]   temp   =   new   string[rowCount+1,   colCount];  
                                    for(int   i=0;   i<rowCount;   i++)  
                                          for(int   j=0;   j<colCount;   j++)  
                                                  temp[i,j]=   myString[i,j];                   //复制原数组到新数组  
                                    int   k=0;  
                                    foreach(string   data   in   dataStrings)         //赋值                                
                                          temp[rowCount,k++]   =   data;  
                                    myStrings   =   temp;                       //把新数组设置回字段  
                                    }  
      另外如果第二维需要扩展,可以考虑采用锯齿数组结构,也就是说数组的数组:  
      string[][]   myString;  
      这种结构和二维数组不同的是,它的第二维可以不是固定的,动态扩展可以按照一维数组分别对两个数组进行。方法类似上面代码的过程,不同的是它可以使用一个类库中的CopyTo方法(当然,CopyTo内部也是逐个复制)。 

    http://developer.51cto.com/art/200909/148913.htm

  • 相关阅读:
    百度编辑器如何能实现直接粘贴把图片上传到服务器中
    百度ueditor如何能实现直接粘贴把图片上传到服务器中
    ueditor如何能实现直接粘贴把图片上传到服务器中
    html+SpringMVC超大视频上传解决方案
    html+java超大视频上传解决方案
    html+JSP超大视频上传解决方案
    html+CSharp超大视频上传解决方案
    html+.net超大视频上传解决方案
    SAP 函数CRM_ORDERADM_I_PROD_DETERM_OW的单元测试方法
    SAP CRM Opportunity行项目Alternative ID的填充逻辑
  • 原文地址:https://www.cnblogs.com/emanlee/p/1698266.html
Copyright © 2011-2022 走看看