我有以下代码:
// Obtain the string names of all the elements within myEnum String[] names = Enum.GetNames( typeof( myEnum ) ); // Obtain the values of all the elements within myEnum Array values = Enum.GetValues( typeof( myEnum ) ); // Print the names and values to file for ( int i = 0; i < names.Length; i++ ) { print( names[i], values[i] ); }
但是,我无法索引值。有没有更简单的方法可以做到这一点?
还是我完全错过了一些东西!
Array values = Enum.GetValues(typeof(myEnum)); foreach( MyEnum val in values ) { Console.WriteLine (String.Format("{0}: {1}", Enum.GetName(typeof(MyEnum), val), val)); }
或者,您可以强制转换返回的System.Array:
string[] names = Enum.GetNames(typeof(MyEnum)); MyEnum[] values = (MyEnum[])Enum.GetValues(typeof(MyEnum)); for( int i = 0; i < names.Length; i++ ) { print(names[i], values[i]); }
但是,您可以确定GetValues以与GetNames返回名称相同的顺序返回值吗?