如何在c#中显示一行随机数而不是列
本文关键字:随机数 一行 显示 | 更新日期: 2023-09-27 18:05:39
程序如下:
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 90
2 2 2 8我尝试使用"0:D7",它给了我一堆零,最后几位数字是其他数字。
用Console.Write
代替Console.WriteLine
您应该在WriteLine
之前创建您期望的string
,下面是使用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));
用Console.Write
代替Console.WriteLine
Console.WriteLine
-在控制台窗口中添加额外的行,因此每个数字出现在不同的行中。
foreach (int sub in lotto)
{
lotDigits = rnd.Next(0, 8);
Console.Write(string.Format("{0}'t", lotDigits));
}
foreach (int sub in lotto)
{
lotDigits = rnd.Next(0, 8);
Console.Write(string.Format("{0} ", lotDigits));
}