从引用中随机化枚举

时间:2013-02-04 20:42:44

标签: c# object random

尝试随机化枚举值。问题是枚举在我在代码中引用的引用文件中。例如

        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]);
        }

有关我做错的任何建议吗?

1 个答案:

答案 0 :(得分: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>();

工作得很好!