c# - 调整和初始化二维数组 C#

标签 c# arrays multidimensional-array

我有一个类型为 string 的二维数组,我想在某个循环中对其进行修改和调整大小。我的主要目标是通过创建一个二维数组来使用最少的内存,该数组将在循环的每次迭代中进行修改,并将一个字符添加到该数组中的适当单元格中。这是我的代码:

static void Main(string[] args)
    {
        int maxBound = 100;//length of freq array
        Random rnd1 = new Random();
        int numLoops = rnd1.Next(1000, 1200);//number of total elements in freq array
        int[] freq = new int[maxBound];//freq array
        string[,] _2dim = new string[maxBound, numLoops];//rows,columns
        Random rnd2 = new Random();

        for (int i = 0; i < numLoops; i++)
        {
            int s = rnd2.Next(maxBound);
            freq[s]++;
            //Here I try to add `*` to the _2dim array while resizing it to the appropriate size

        }
    } 

解决方案的主要方法是什么?谢谢

最佳答案

您可能想要使用锯齿状数组而不是二维数组。简而言之,二维数组始终是一个 N x M 矩阵,您无法调整其大小,而锯齿状数组是一个数组数组,您可以在其中将每个内部元素分别初始化为不同的大小(请参阅详细信息中的差异 here)

int maxBound = 100;
Random rnd = new Random();
int numLoops = rnd.Next(1000, 1200);

string[][] jagged = new string[numLoops][];

for (int i = 0; i < numLoops; i++)
{
    int currLen = rnd.Next(maxBound);
    jagged[i] = new string[currLen];

    for (int j = 0; j < currLen; j++)
        jagged[i][j] = "*"; // do some initialization
}

关于c# - 调整和初始化二维数组 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41320486/

相关文章:

javascript - 滚动浏览一系列图像,

c - 使用UART arduino接收数据数组

c - C中的选择排序程序

python - 从 N 维数组中的值构造 (N+1) 维对角矩阵

java - 为什么我的二维数组克隆不止一次?

c# - HttpListener 如何提供图像

c# - 有关在 .NET 中使用消息队列服务总线的问题

javascript - 如何将文件上传选择插入到 GridView 中,然后添加新行?

c# - 如何通过 lambda/方法表达式使用 linq 创建嵌套组

java - 将二维数组值更改为零