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

时间:2013-03-24 17:03:49

标签: c# output

以下是该计划:

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”,它给了我一堆零,最后几位是其他数字。

4 个答案:

答案 0 :(得分:4)

使用Console.Write代替Console.WriteLine

答案 1 :(得分:2)

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

答案 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));
}