以下是该计划:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplicationlotto
{
class Program
{
const int LIMIT = 7;
static void Main(string[] args)
{
int[] lotto = new int[LIMIT];
int lotDigits;
Random rnd = new Random();
foreach (int sub in lotto)
{
lotDigits = rnd.Next(0, 8);
Console.WriteLine(lotDigits);
}
}
}
}
我希望它在一行中显示7个随机数字,形成一个7位数的“乐透号码”,所以看起来像“5902228”而不是:
5
9
0
2
2
2
8
我尝试使用“0:D7”,它给了我一堆零,最后几位是其他数字。
答案 0 :(得分:4)
使用Console.Write
代替Console.WriteLine
答案 1 :(得分:2)
您应该在string
之前创建预期的WriteLine
,下面是使用LINQ Enumerable.Range
和string.Join
代码行更少的代码:
private static void Main(string[] args)
{
var random = new Random();
var numbers = Enumerable.Range(0, 7)
.Select(x => random.Next(0, 9));
var output = string.Join(string.Empty, numbers);
Console.WriteLine(output);
}
或使用Aggregate
:
var output = Enumerable.Range(0, 7)
.Aggregate(string.Empty,
(str, i) => str += random.Next(0, 9));
答案 2 :(得分:0)
使用Console.Write
代替Console.WriteLine
Console.WriteLine
- 在控制台窗口添加一行,因此每个数字都显示在不同的行中。
foreach (int sub in lotto)
{
lotDigits = rnd.Next(0, 8);
Console.Write(string.Format("{0}\t", lotDigits));
}
答案 3 :(得分:0)
foreach (int sub in lotto)
{
lotDigits = rnd.Next(0, 8);
Console.Write(string.Format("{0} ", lotDigits));
}