【发布时间】:2012-11-06 04:08:29
【问题描述】:
我有二维数组:myarray[5,6]; 我的阵列已经满了。但是,我仍然想在其中添加更多元素。 那么,如何扩展数组的大小呢? 或者 如何声明动态二维数组? (抱歉问了这么愚蠢的问题:P)
【问题讨论】:
标签: c#
我有二维数组:myarray[5,6]; 我的阵列已经满了。但是,我仍然想在其中添加更多元素。 那么,如何扩展数组的大小呢? 或者 如何声明动态二维数组? (抱歉问了这么愚蠢的问题:P)
【问题讨论】:
标签: c#
您想要的是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);
【讨论】:
你可以使用Array.Resize():
var arr = new int[10];
Array.Resize(ref arr, arr.Length * 2); // doubles the array size
更新
抱歉,我刚刚错过了 2D:
【讨论】:
我担心你是在寻求错误问题的解决方案。 您不应该(在大多数情况下)手动调整数组的大小。此处已建议使用和通用列表(或通用列表的通用列表)
请阅读此咆哮:Arrays considered somewhat harmful
考虑使用其他人已经建议的通用列表。
【讨论】:
如果您需要扩展大小,您必须创建一个新数组。如果你看右边,你可以看到一个答案。
【讨论】: