如何获得在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); } }