如何获得在C#中的枚举索引值

在C中, enums在内部等于一个整数。 所以我们可以把enum数据types当作整数来处理。

如何实现与C#一样?

简单地将其转换为int ,如下所示:

 int eValue = (int)enumValue; 

下面是另一个示例,向您展示如何设置其内部整数值:

 public enum MyEnum { MyValue1 = 1, MyValue2 = 2 } (int)MyEnum.MyValue2 == 2; // True 

将Enum-Type转换为int的另一种方法是:

 enum E { A = 1, /* index 0 */ B = 2, /* index 1 */ C = 4, /* index 2 */ D = 4 /* index 3, duplicate use of 4 */ } void Main() { E e = EC; int index = Array.IndexOf(Enum.GetValues(e.GetType()), e); // index is 2 E f = (E)(Enum.GetValues(e.GetType())).GetValue(index); // f is EC } 

更复杂但独立于分配给枚举值的INT值。

默认情况下,枚举中每个元素的基础types是整数。

 enum Values { A, B, C } 

您也可以为每个项目指定自定义值:

 enum Values { A = 10, B = 11, C = 12 } int x = (int)Values.A; // x will be 10; 

注意:默认情况下,第一个枚举数的值为0。

使用演员:

 public enum MyEnum : int { A = 0, B = 1, AB = 2, } int val = (int)MyEnum.A; 

使用简单的铸造:

 int value = (int) enum.item; 

请参阅枚举(C#参考)

你可以直接施放它:

 enum MyMonth { January = 1, February, March, April, May, June, July, August, September, October, November, December }; public static string MyMonthList(int MonthIndex) { MyMonth MonthName = (MyMonth)MonthIndex; return MonthName.ToString(); } 

例如:

 string MySelectedMonthName=MyMonthList(12); //then MySelectedMonthName value will be August. 
 using System; public class EnumTest { enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri}; static void Main() { int x = (int)Days.Sun; int y = (int)Days.Fri; Console.WriteLine("Sun = {0}", x); Console.WriteLine("Fri = {0}", y); } }