Podría alguien indicarme un método más limpio para generar un miembro enum aleatorio. Esto funciona, pero parece feo.Generar enumeración aleatoria en C# 2.0
Gracias!
public T RandomEnum<T>()
{
string[] items = Enum.GetNames(typeof(T));
Random r = new Random();
string e = items[r.Next(0, items.Length - 1)];
return (T)Enum.Parse(typeof (T), e, true);
}
Por supuesto, en una implementación real no se desea utilizar un nuevo aleatoria cada llamada (especialmente si se llama a menudo) y yo personalmente desearía caché de la matriz. – Dolphin
Tenga en cuenta que Silverlight no tiene Enum.GetValues. Vea la solución alternativa más abajo. –
CUIDADO Esta respuesta es defectuosa. Como se dijo antes, si la generación está unida, esto no generará ninguna aleatoriedad. – Luis