C#遍历枚举?(索引System.Array)

我有以下代码:

// 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返回名称相同的顺序返回值吗?

以上是 C#遍历枚举?(索引System.Array) 的全部内容, 来源链接: utcz.com/qa/422920.html

回到顶部