初学,请问一下,枚举可以转成String类,为什么String类不可以转成枚举的值。在线,急,加上100分
enum   TestEnum 
             { 
                            Zero=0,One,   Two,   Three,   Four,   Five,   Six,   Seven,   Eight,   Nine,   Ten 
             }   
 ------------------ 
 问题: 
 string   s   =   TestEnum.Eight.ToString();//这样是可行的   
 //但是以下却不行?? 
 string   i= "8 ";   
 TestEnum   TE   =   (TestEnum)i;   
 这样为什么不行,请高手给说说
------解决方案--------------------// 等价字符串名称 
 string str =  "One "; 
 TestEnum _one = (TestEnum)Enum.Parse(typeof(TestEnum), str);   
 // 等价字符串值 
 int n = 1; 
 TestEnum _one2 = (TestEnum)n; 
 // OR 
 TestEnum _one3 = (TestEnum)Enum.Parse(typeof(TestEnum), n.ToString());
------解决方案--------------------数据类型要一致。
------解决方案--------------------C#入门经典上就有这段解释..   
 要获得枚举的字符串值,可以使用Convert.ToString()或变量本身的ToString()命令,直接使用(string)数据类型转换时不行的,因为需要进行的处理并不仅仅是把存储在枚举变量的数据放在string变量中。 
 如果要把string转换为枚举值,可以使用Enum.Parse()进行转换,其使用方式如下: 
 (enumerationType)Enum.Parse(typeof(enumerationType), enumerationValueString) 
 string myString =  "NORTH "; 
 myDirection = (Orientation)Enum.Parse(typeof(Orientation), myString); 
 当然,因为并不是所有的字符串值都可以映射为一个Orientation值。如果一个值不能映射为枚举值中的一个,就会产生一个错误,与C#中的其他值一样,这些值是区分大小写的。