C# 以矩阵格式打印二维数组
我有一个二维数组,如下所示:C# 以矩阵格式打印二维数组,c#,multidimensional-array,C#,Multidimensional Array,我有一个二维数组,如下所示: long[,] arr = new long[4, 4] {{ 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 1, 1, 1, 1 }}; 我想以矩阵格式打印此数组的值,如: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
long[,] arr = new long[4, 4] {{ 0, 0, 0, 0 },
{ 1, 1, 1, 1 },
{ 0, 0, 0, 0 },
{ 1, 1, 1, 1 }};
我想以矩阵格式打印此数组的值,如:
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
我该怎么做?像这样:
long[,] arr = new long[4, 4] { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 1, 1, 1, 1 } };
var rowCount = arr.GetLength(0);
var colCount = arr.GetLength(1);
for (int row = 0; row < rowCount; row++)
{
for (int col = 0; col < colCount; col++)
Console.Write(String.Format("{0}\t", arr[row,col]));
Console.WriteLine();
}
long[,]arr=新的long[4,4]{{0,0,0,0},{1,1,1},{0,0,0,0},{1,1,1};
var rowCount=arr.GetLength(0);
var colCount=arr.GetLength(1);
对于(int row=0;row
您可以这样做(稍微修改数组以显示它适用于非方形数组):
long[,]arr=新长[5,4]{{1,2,3,4},{1,1,1},{2,2,2},{3,3,3},{4,4,4};
int rowLength=arr.GetLength(0);
int colLength=arr.GetLength(1);
for(int i=0;i
你可以用很短的时间完成这项工作
int[,] values=new int[2,3]{{2,4,5},{4,5,2}};
for (int i = 0; i < values.GetLength(0); i++)
{
for (int k = 0; k < values.GetLength(1); k++) {
Console.Write(values[i,k]);
}
Console.WriteLine();
}
int[,]value=新的int[2,3]{{2,4,5},{4,5,2};
for(int i=0;i
以下是如何在Unity中执行此操作:
(修改了@markmuetz的答案,因此请确保)
int[,]rawNodes=新int[,]
{
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0 }
};
私有void Start()
{
int rowLength=rawNodes.GetLength(0);
int colLength=rawNodes.GetLength(1);
字符串数组字符串=”;
for(int i=0;i
您也可以这样做
long[,] arr = new long[4, 4] { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 1, 1, 1, 1 }};
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write(arr[i,j]+" ");
}
Console.WriteLine();
}
long[,]arr=新的long[4,4]{{0,0,0,0},{1,1,1},{0,0,0,0},{1,1,1};
for(int i=0;i
我编写了扩展方法
public static string ToMatrixString<T>(this T[,] matrix, string delimiter = "\t")
{
var s = new StringBuilder();
for (var i = 0; i < matrix.GetLength(0); i++)
{
for (var j = 0; j < matrix.GetLength(1); j++)
{
s.Append(matrix[i, j]).Append(delimiter);
}
s.AppendLine();
}
return s.ToString();
}
您需要留下行号,这样列就不会在数字之间留空格。您的示例不会在我的计算机上用VS2010编译,而不是“\n”您可以使用Environment.NewLine,这是推荐的,并且总是有效的。您不需要
string.Format
,在这里,它可以简化为Console.Write({0}),arr[i,j])代码>我在[]内有错误的索引数
。解决方案是arr[i][j]
数组元素之间的空格是什么。这对区分行没有影响。我们在问题的预期答案中看不到值之间的空格,不是吗?正是这个答案使它成为一种方法。谢谢
long[,] arr = new long[4, 4] { { 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 1, 1, 1, 1 }};
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write(arr[i,j]+" ");
}
Console.WriteLine();
}
public static string ToMatrixString<T>(this T[,] matrix, string delimiter = "\t")
{
var s = new StringBuilder();
for (var i = 0; i < matrix.GetLength(0); i++)
{
for (var j = 0; j < matrix.GetLength(1); j++)
{
s.Append(matrix[i, j]).Append(delimiter);
}
s.AppendLine();
}
return s.ToString();
}
results.ToMatrixString();