我刚刚在学习多维数组和消息框。我目前在消息框中创建 2 列时遇到问题。我目前可以让它打印出我需要的随机数,但只能打印在一列中。感谢您的帮助!
string msg = "";
Random numb = new Random();
int[,] thing = new int[ 10, 2 ];
thing[0, 0] = numb.Next(0,10);
thing[0, 1] = numb.Next(0,10);
thing[1, 0] = numb.Next(0,10);
thing[1, 1] = numb.Next(0,10);
thing[2, 0] = numb.Next(0,10);
thing[2, 1] = numb.Next(0,10);
thing[3, 0] = numb.Next(0,10);
thing[3, 1] = numb.Next(0,10);
thing[4, 0] = numb.Next(0,10);
thing[4, 1] = numb.Next(0,10);
thing[5, 0] = numb.Next(0,10);
thing[5, 1] = numb.Next(0,10);
thing[6, 0] = numb.Next(0,10);
thing[6, 1] = numb.Next(0,10);
thing[7, 0] = numb.Next(0,10);
thing[7, 1] = numb.Next(0,10);
thing[8, 0] = numb.Next(0,10);
thing[8, 1] = numb.Next(0,10);
thing[9, 0] = numb.Next(0,10);
thing[9, 1] = numb.Next(0,10);
foreach (int x in thing)
msg = msg + x + "\n";
MessageBox.Show(msg, "Table");
最佳答案
改变这个:
foreach (int x in thing)
msg = msg + x + "\n";
MessageBox.Show(msg, "Table");
收件人:
for (int i = 0; i < thing.GetLength(0); i++)
msg += String.Format("{0} {1}\n", thing[i, 0], thing[i, 1]);
//msg += thing[i, 0] + " " + thing[i, 1] + "\n";
MessageBox.Show(msg, "Table");
解释:
方法 GetLength(0)
返回我们的 x
的维度长度(它基本上类似于简单数组的 array.Length
但具有特定维度) 并且我们使用 i
变量和 for
循环来遍历它。在 y
中我们只有 2 个元素,所以我们可以只使用 [0]
和 [1]
索引,因为我们知道那里只有两个元素.这解释了这一行:
msg += thing[i, 0] + " " + thing[i, 1] + "\n";
像这样连接字符串时要小心,就好像你不在你的数字之间添加这个空格 ""
编译器只会添加它们,所以像 [33, 10]< 这样的元素
将连接成如下字符串:"43\n"
而不是 "33 10\n"
。
附言
所以让我们使用 String.Format
方法来确保它的格式正确:
msg += String.Format("{0} {1}\n", thing[i, 0], thing[i, 1]);
关于c# - 在 MessageBox 中显示多维数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056850/