Digamos que tengo esta enumeración:¿Cómo conseguir representación en cadena de valor de enumeración compleja
[Flags]
public enum SomeType
{
Val1 = 0,
Val2 = 1,
Val3 = 2,
Val4 = 4,
Val5 = 8,
Val6 = 16,
All = Val1 | Val2 | Val3 | Val4 | Val5 | Val6
}
y algunas variables:
SomeType easyType = SomeType.Val1 | SomeType.Val2;
SomeType complexType = SomeType.All;
si quiero colocar a través de los valores de la primera enumeración que pueda simplemente hacer:
foreach(string s in easyType.ToString().Split(','))
{ ... }
Sin embargo, cuando trato de aplicar el mismo enfoque a la 'tipoCompuesto' llego valor 'Todos', que es, por supuesto, válido porque también es uno de los posibles valores de la enumeración. Pero, ¿hay una buena manera de ver realmente de qué valores es el SomeType.All creado? Sé que podría hacer un bucle manual de a través de todos los valores como la que:
if(complexType.HasFlag(ManualType.Val1) && ...
Creo que el problema es que no se debe poner 'all' dentro de esta enumeración. Como lo marca '[Flags]', no es una buena idea ponerle ninguna combinación. –
Luego, yo (y otros) siempre tendré que recordar usar una combinación adecuada de enumeraciones cuando use SomeType para algo. – IamDeveloper
¿Puedes publicar la enumeración original en lugar de 'SomeType' inútil? –