Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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#_Multidimensional Array - Fatal编程技术网

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();