如何在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

9

0

2

2

2

8

我尝试使用"0:D7",它给了我一堆零,最后几位数字是其他数字。

如何在c#中显示一行随机数而不是列

Console.Write代替Console.WriteLine

您应该在WriteLine之前创建您期望的string,下面是使用LINQ Enumerable.Rangestring.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));
}