C# 如何读取二维数组并将其作为矩阵写入控制台

C# 如何读取二维数组并将其作为矩阵写入控制台,c#,arrays,matrix,optimization,multidimensional-array,C#,Arrays,Matrix,Optimization,Multidimensional Array,我想读取一个二维数组并将其作为矩阵写入控制台 读取数组 int[][] arr = new int[3][]; for(int i=0;i<3;i++) { arr[i] = Array.ConvertAll(Console.ReadLine().Split(' '),aTemp => Convert.ToInt32(aTemp)); } 然后,我也尝试像这样用行和列初始化列 “int[]arr=新int[3][3];” 当时另一个错误是 无效的秩说明符:应为“,”或“]”

我想读取一个二维数组并将其作为矩阵写入控制台

读取数组

int[][] arr = new int[3][];
for(int i=0;i<3;i++)
{
    arr[i] = Array.ConvertAll(Console.ReadLine().Split(' '),aTemp => Convert.ToInt32(aTemp));
}
然后,我也尝试像这样用行和列初始化列 “int[]arr=新int[3][3];”

当时另一个错误是

无效的秩说明符:应为“,”或“]”

然后我尝试初始化数组,如下所示

"int[,] arr = new int[3,3];"
无效的秩说明符错误这次消失了,但错误出现在读取数组元素的行中

此错误可能是由于未使用
arr[i][j]
并读取每个元素造成的

我只想知道我的初始代码中的错误是什么,我没有得到GetLength(1)的值。
int[,]arr=newint[3,3]之间有什么区别
int[]arr=新的int[3][3]

还有什么优化的方法可以读取像语句一样的二维数组,而不是使用2 for循环

我希望问题是清楚的。如果有人能帮我解决这个问题就太好了。提前感谢

int[,]
是一个

int[][]
是一个数组,它是一个数组数组。像这样描述的交错数组没有秩,调用
GetLength(rank)
将导致错误,因为它对编译器只有一个技术维度。它只是一个数组,每个元素都填充了另一个数组

要将锯齿状2d数组写入矩阵,可以利用

连接指定数组的元素或 集合,在每个元素或元素之间使用指定的分隔符 成员

还是另一种方法

for (var i = 0; i < arr.Length; i++)
{
   for (var j = 0; j < arr[i].Length; j++)
      Console.Write(arr[i][j] + " "); 
   Console.WriteLine();
}

对于多维2d数组,您可以调用
GetLength(rank)
来获取该特定维度的长度

var arr = new [,] {{1,2,3},{4,5,6},{7,8,9}};

for (var i = 0; i < arr.GetLength(0); i++)
{
   for (var j = 0; j < arr.GetLength(1); j++)
      Console.Write(arr[i, j]);
   Console.WriteLine();
}
var arr=new[,]{1,2,3},{4,5,6},{7,8,9};
对于(变量i=0;i
var arr = new [] {new []{1,2,3},new []{4,5,6},new []{7,8,9}};

for(int i = 0; i< arr.Length; i++)
    Console.WriteLine(string.Join(", ",arr[i] ));
1, 2, 3
4, 5, 6
7, 8, 9
for (var i = 0; i < arr.Length; i++)
{
   for (var j = 0; j < arr[i].Length; j++)
      Console.Write(arr[i][j] + " "); 
   Console.WriteLine();
}
foreach (var t in arr)
{
   foreach (var t1 in t)
      Console.Write(t1 + " ");
    Console.WriteLine();
}
var result = string.Join(Environment.NewLine, arr.Select(x => string.Join(", ", x)));
Console.WriteLine(result);
var arr = new [,] {{1,2,3},{4,5,6},{7,8,9}};

for (var i = 0; i < arr.GetLength(0); i++)
{
   for (var j = 0; j < arr.GetLength(1); j++)
      Console.Write(arr[i, j]);
   Console.WriteLine();
}