トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

11-12 1からnまでの整数を重複しないようランダムに出力

問題

整数nを渡すと1からnまでの整数を重複しないようランダムに出力する関数「bingo」を作ってください。
サンプル入出力は下のようになります。

>>> bingo(10)
[10, 7, 8, 4, 5, 2, 3, 1, 6, 9]
>>> bingo(3)
[2, 3, 1]
>>> bingo(3)
[2, 3, 1]
>>> bingo(3)
[3, 1, 2]
>>> bingo(10)
[7, 3, 8, 6, 4, 10, 9, 2, 1, 5]


ソース

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        const int maxNo = 10;
        int rn = 0;
        Console.Write("[");
        foreach (int each in Enumerable.Range(1, maxNo).OrderBy(X => Guid.NewGuid())) {
            Console.Write("{0,2}", each);
            if (++rn < 10) Console.Write(",");
        }
        Console.WriteLine("]");
    }
}


実行結果

[ 9, 1,10, 6, 5, 7, 3, 2, 4, 8]


解説

LINQは便利ですね。