我有這樣一個枚舉:強制枚舉以獲取與其關聯的值?
public enum BlahType
{
blahA = 1,
blahB = 2,
blahC = 3
}
如果我有值「blahB」字符串,是有可能丟反對枚舉BlahType獲得價值2?
我有這樣一個枚舉:強制枚舉以獲取與其關聯的值?
public enum BlahType
{
blahA = 1,
blahB = 2,
blahC = 3
}
如果我有值「blahB」字符串,是有可能丟反對枚舉BlahType獲得價值2?
您可以使用Enum.Parse方法,然後強制轉換爲int。
用途:
BlahType yourEnumValue = (BlahType) Enum.Parse(typeof(BlahType), "blahB");
然後
int yourIntValue = (int) yourEnumValue;
public void EnumInstanceFromString()
{
DayOfWeek wednesday = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "Wednesday");
DayOfWeek sunday = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "sunday", true);
DayOfWeek tgif = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "FRIDAY", true);
lblOutput.Text = wednesday.ToString() +
". Int value = " +
(int)wednesday).ToString() + "<br>";
lblOutput.Text += sunday.ToString() +
". Int value = " +
((int)sunday).ToString() + "<br>";
lblOutput.Text += tgif.ToString() +
". Int value = " +
((int)tgif).ToString() + "<br>";
}
enum test
{
VAL1,
VAL2
}
static void Main(string[] args)
{
test newTest = (test)Enum.Parse(typeof(test), "VAL2");
Console.WriteLine(newTest.ToString());
}
打我+1。 – 2009-04-07 16:02:54
使用此代碼...
BlahType blah = Enum.Parse(typeof(BlahType), "blahB");
正如一些OT上述她想要使用:
BlahType myEnum = (BlahType)Enum.Parse(typeof(BlahType), "blahB");
int myEnumValue = (int)myEnum;
請注意,Enum.Parse可能很昂貴。如果你使用的是Compact Framework,那麼每次調用都會非常昂貴,而且如果你使用完整的.NET,那麼從內存的角度來看,這可能會很昂貴(因爲東西會被緩存)。所以,這是最好的答案,但要小心Enum.Parse。 – 2009-04-07 16:11:15