从引用中随机化枚举



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

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

关于我做错了什么,有什么建议吗?

想明白了。创建了一个新类:

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>();

工作很棒!

最新更新