Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 运行时的二维数组大小_C#_Arrays_Multidimensional Array_Dynamic Programming - Fatal编程技术网

C# 运行时的二维数组大小

C# 运行时的二维数组大小,c#,arrays,multidimensional-array,dynamic-programming,C#,Arrays,Multidimensional Array,Dynamic Programming,我正在将一个已知大小的矩阵(从file.txt)转换为相同大小的2D数组。这个代码就可以了 但现在我真的想扩展它,比如把一个未知大小的矩阵放到一个2D数组中,也就是说,使用一个动态大小的2D数组 这是我正在修改的C代码 int[,] matrix = new int[3,3]; int i = 0, j = 0, k = 0; #region Reading Matrices From Files // Matrix 1 Manipulation............... // Read

我正在将一个已知大小的矩阵(从file.txt)转换为相同大小的2D数组。这个代码就可以了

但现在我真的想扩展它,比如把一个未知大小的矩阵放到一个2D数组中,也就是说,使用一个动态大小的2D数组

这是我正在修改的C代码

int[,] matrix = new int[3,3]; 
int i = 0, j = 0, k = 0;

#region Reading Matrices From Files
// Matrix 1 Manipulation...............
// Read the file as one string. 
string text = System.IO.File.ReadAllText("file.txt");
//reads all the text of file of given path in a string

foreach (var row in text.Split('\n'))
{
    //outter foreach loop is for setting number of rows equal to number lines by splittin over \n
    j = 0;
    foreach (var col in row.Trim().Split(' '))
    {
        //inner foreach loop is for setting number of columns equal to number chracters by splittin over space

        matrix[i, j] = int.Parse(col.Trim());
        j++;
    }
    i++;
}

非常感谢您的帮助……

阵列是一个固定大小的数据结构。它在许多语言中使用得很好。不幸的是,一旦创建,您可能无法修改其内容

也就是说,列表如何调整大小

列表实际上是用数组实现的。因此,最初一个列表包含固定数量的对象。当您想要添加一个超过此容量的对象时,我们将当前数组复制到一个更大的数组中,从而动态增加容量

使用这个想法,我们实际上可以创建一个矩阵类,该类可以根据数组而不是列表自动调整大小

我希望以上内容能让您思考如何从数组创建矩阵!如果没有,以下是更多提示:

  • 保持两个整数跟踪当前阵列的容量。如果要添加超过一个的元素(例如向行添加条目,但行已满),则需要执行调整大小操作
  • 调整大小操作包括初始化较大(通常为两倍)的新数组,然后复制所有值
  • 别忘了在调整大小后检查所有数组的大小是否相同!你可能需要一个循环

那么问题是什么?忘记显式使用数组-改用
List
。只有当性能问题被证明存在时,才需要管理自己的阵列。链接:但不幸的是,我被指派用数组而不是列表来做这件事@PieterGeerkens@MuhammadNomanSajid:如果是作业,就说是作业。如果您向我们提供更完整的数据,我们可以更好地确保您学习必要的概念。