我将5个数字放入一个随机生成的数组中。每个数组只能有5组数字。根据我想要的绘图数量,我们可以说它应该打印出类似的东西。
12345 //array 1
54321 //array 2
98765 //array 3
45678 //array 4
34589 //array 5
然后将其放入List对象并打印出来。
当我调试它工作的东西时,我看到列表对象填充了所有5个数组和每个元素中的数字。但是当我尝试打印出列表时,它只给我System.Int32 []输出。
这是我的代码,我写的非常简单,但我只是想让它做基本的功能,然后我打算把它清理干净。
我基本上试图模拟Mega Millions彩票亭。您可以选择所需的绘制数量,然后打印出5组随机生成的数字。最后一句话:
foreach (int[] g in list)
Console.WriteLine(" " + g);
这应该工作我不知道什么是错的,string.join(“”,g)不起作用。它只打印出第一个数组中的第一组数字。相信我,我搜索了这个,我找不到解决方案。而且由于我通过调试获得了功能,我不想浪费时间来弄清楚它为什么不能正确打印出来。
static void Main(string[] args)
{
int[] getLotto = new int[5];
int getMega = 0;
Program p = new Program();
Console.WriteLine("MEGA MILLIONS!!\n");
p.result(ref getMega, ref getLotto);
for( int i = 0; i < 5; i++)
{
Console.Write(getLotto[i] + " ");
}
Console.WriteLine("\n\nMEGA {0}", getMega);
}
void result(ref int Mega, ref int[] storeNumArray)
{
var containter = new List<int>();
Random ranNumber = new Random();
int maxValue = 73;
int x = 0;
int y = 0;
int temp = 0;
int minValue = 1;
int draw = 5;
int[,] nDemension = new int[draw, 5];
List<int[]> list = new List<int[]>();
for(int s = 0; s < draw; s++)
for (int i = 0; i < 5; i++)
{
x = ranNumber.Next(minValue, maxValue);
storeNumArray[i] = x;
if (i == 4)
list.Add(storeNumArray);
}
while (y < 5)
{
Mega = ranNumber.Next(maxValue);
temp = storeNumArray[y];
if (Mega != temp)
{
y = 5;
break;
}
}
foreach (int[] g in list)
Console.WriteLine(" " + g);
}
}
}
答案 0 :(得分:5)
foreach (int[] g in list)
{
Console.WriteLine(" " + g);
}
不会打印完整数组,因为在数组上隐式调用了ToString()(而不是数组的元素),试试这个:
foreach (int[] g in list)
{
foreach(int num in g)
{
Console.WriteLine(" " + num); //you may want to use String.Join()
}
}
我不确定你想要实现什么,但根据Jonathan的评论,你应该做这样的事情(再次我不确定这是否是你想要的):
foreach (int[] g in list)
{
StringBuilder sb = new StringBuilder();
foreach(int num in g)
{
sb.Append(num.ToString());
}
Console.WriteLine(sb.ToString());
}
答案 1 :(得分:0)
for (int s = 0; s < draw; s++)
{
for (int i = 0; i < 5; i++)
{
x = ranNumber.Next(minValue, maxValue);
storeNumArray[i] = x;
if (i == 4)
{
list = new List<int[]>();
list.Add(storeNumArray);
}
}
while (y < 5)
{
Mega = ranNumber.Next(maxValue);
temp = storeNumArray[y];
if (Mega != temp)
{
y = 5;
break;
}
}
foreach (int[] g in list)
{
StringBuilder sb = new StringBuilder();
foreach (int num in g)
{
sb.Append(' ' + num.ToString());
}
Console.WriteLine(sb.ToString());
}
}