C# 如何在多维数组中按行显示值?
我创建了一个多维数组:C# 如何在多维数组中按行显示值?,c#,asp.net,C#,Asp.net,我创建了一个多维数组: string[,] array_questions = new string[dt.Rows.Count, dt.Columns.Count]; for (i = 0; i < dt.Rows.Count; i++) { for (j = 0; j < dt.Columns.Count; j++) { array_questions[i, j] = dt.Rows[i][j].ToString(); } } fore
string[,] array_questions = new string[dt.Rows.Count, dt.Columns.Count];
for (i = 0; i < dt.Rows.Count; i++)
{
for (j = 0; j < dt.Columns.Count; j++)
{
array_questions[i, j] = dt.Rows[i][j].ToString();
}
}
foreach (string number in array_questions)
{
Response.Write(number + "\n");
}
string[,]array_questions=新字符串[dt.Rows.Count,dt.Columns.Count];
对于(i=0;i
但它将整个数组显示在一个较长的行中。如何在aspx页面中按行显示它?您的问题是矩形二维数组的
foreach
循环将一次返回该数组中的所有元素。您需要使用索引来访问二维数组的行和列
浏览每一行并显示每个元素。然后在每行后面添加段落(新行)
举例如下:
for (int row = 0; row < array_questions.GetLength(0); row++)
{
for (int column = 0; column < array_questions.GetLength(1); column++)
{
//writing data, you probably want to add comma after it
Response.Write(array_questions[row,column]);
}
//adding new line, so that next loop will start from new line
Response.Write(Environment.NewLine);
}
如果您之前正确填写了array\u问题
,您应该会在页面上收到表视图数据,结果是响应。编写调用
一个更干净的解决方案是重用dt
(我假设它是一个行
属性,即IEnumerable
。接下来的代码实现了类似的行为,但以更干净的方式,并且您不需要另一个数组
foreach (var row in dt.Rows)
{
Response.Write(string.Join(", ", row) + Environment.NewLine);
}
将以下一个表格的方式打印数据:
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
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
for(int r=0;r ”);
}
你是怎么想的
for (int r = 0; r < table.GetLength(0); r++)
{
for (int k = 0; k < table.GetLength(0); k++)
{
Console.Write((table[r, k] + " " ));
}
Console.Write(Environment.NewLine + Environment.NewLine);
}
Console.ReadLine();
for(int r=0;r
据我所知,OP want的array\u问题的实际值是在表中格式化的,而不是每个维度的计数。它显示了错误:与“string.Join(string,string[])匹配的最佳重载方法有一些无效参数,您可以使用string.Join。我不确定你会给它什么作为数组参数。也许ArraySegment可以工作?@Alxandr是的,string.Join
可以完美地工作在锯齿状数组上,但是对于矩形数组,没有内置机制来检索单独的行和行。适用于一维数组(或锯齿数组,基本上是一维数组的一维数组)。@IlyaIvanov你说得对。我查了一下。虽然我必须说这应该有一个结构(比如ArraySegment,但可能是ArrayDigment之类的)。Join接受一个可枚举项(尽管它可能没有给它一个数组那么有效)。您的双循环可能仍然是最好的解决方案。@Ilya Ivanov,但它显示了一个错误:“string.Join(string,string[])”的最佳重载方法匹配有一些无效参数。请help@user2431727然后使用第一个选项。
for (int r = 0; r < dt.Rows.Count; r++)
{
for (int c = 0; c < dt.Columns.Count; c++)
{
Response.Write(String.Join(", ", dt.Rows[r][c].ToString()));
}
Response.Write("<br />");
}
for (int r = 0; r < table.GetLength(0); r++)
{
for (int k = 0; k < table.GetLength(0); k++)
{
Console.Write((table[r, k] + " " ));
}
Console.Write(Environment.NewLine + Environment.NewLine);
}
Console.ReadLine();