【问题标题】:Extend 2D array size? [duplicate]扩展二维数组大小? [复制]
【发布时间】:2012-11-06 04:08:29
【问题描述】:

可能重复:
How to resize multidimensional (2D) array in C#?

我有二维数组:myarray[5,6]; 我的阵列已经满了。但是,我仍然想在其中添加更多元素。 那么,如何扩展数组的大小呢? 或者 如何声明动态二维数组? (抱歉问了这么愚蠢的问题:P)

【问题讨论】:

    标签: c#


    【解决方案1】:

    您想要的是List 中的Lists。

    List<List<int>> data = new List<List<int>>();
    
    for(int i = 0; i < rowsToAdd; i++)
    {
       List<int> newRow = new List<int>();
       for(int j = 0; j < columnsToAdd; j++)
       {
           newRow.Add(j);
       }
       data.Add(newRow);
    }
    

    然后添加一个新行:

    List<int> nextRow = new List<int>(){0,1,2,3};
    data.Add(nextRow);
    

    【讨论】:

      【解决方案2】:

      你可以使用Array.Resize():

      var arr = new int[10];
      Array.Resize(ref arr, arr.Length * 2); // doubles the array size
      

      更新

      抱歉,我刚刚错过了 2D:

      看看this question

      【讨论】:

      • 仅供参考,这根本不会改变数组,它只是创建一个更大的新数组并从旧数组中复制所有数据。
      【解决方案3】:

      我担心你是在寻求错误问题的解决方案。 您不应该(在大多数情况下)手动调整数组的大小。此处已建议使用和通用列表(或通用列表的通用列表)

      请阅读此咆哮:Arrays considered somewhat harmful

      考虑使用其他人已经建议的通用列表。

      【讨论】:

        【解决方案4】:

        如果您需要扩展大小,您必须创建一个新数组。如果你看右边,你可以看到一个答案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 1970-01-01
          • 2011-05-05
          • 1970-01-01
          • 2011-05-05
          • 2014-09-16
          • 2018-07-24
          相关资源
          最近更新 更多