1

列挙値をランダム化しようとしています。問題は、コードで参照している参照ファイルに列挙が含まれていることです。例えば

        public enum AccountTypeEnum
{
        Direct,
        Partner,
        Referral,
        Resold,
}

は参照ファイルにあり、コードではAccountTypeEnumを参照してランダム化する必要があるため、プログラムを実行すると、これら4つの値のいずれかを取得できます。

値をランダム化すると私が信じているこれまでのところ、これは次のとおりです。

   public void AcctType()
        {
            string[] Types = Enum.GetNames(typeof(AccountTypeEnum));            
            Random randType = new Random();
            int randomenum = randType.Next(Types.Length);
            var ret = Enum.Parse(typeof(AccountTypeEnum), Types[randomenum]);
        }

私が間違っていることについて何か提案はありますか?

4

1 に答える 1

1

理解した。新しいクラスを作成しました:

public class EnumRandomizeer
{
    public static Random rand = new Random();
    public static T GetRandomValue<T>()
    {
        T[] values = (T[])(Enum.GetValues(typeof(T)));
        return values[rand.Next(0, values.Length)];
    }
}

そして、列挙値を参照するとき、私は次のようにクラスを参照しました:

 AccountTypeEnum randomAcct = EnumRandomizeer.GetRandomValue<AccountTypeEnum>();

うまくいきました!

于 2013-02-04T20:52:44.017 に答える