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

11-1 くじ引きプログラム

問題

n人の中から公平にm人を選ぶ、くじ引きプログラムを作ってください。


ソース

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var kouho = new string[] { "A", "B", "C", "D", "E", "F", "G" };
        const int m = 3;

        var query1 = kouho.OrderBy(X => Guid.NewGuid());
        var query2 = query1.Take(m).OrderBy(X=>X);

        foreach (var each in query2) {
            Console.Write(each + ",");
        }
    }
}


実行結果

A,C,G,


解説

LINQのOrderBy拡張メソッドでソートしてます。

@it --- GUID値を生成するには?
DOBON --- 配列やコレクションをシャッフルする(ランダムに並び替える)