比如先声明一个enum,然后再用一个字符串数组或者整数数组转换为enum的变量,如下:enum typeName/*={a,b,c};*/;
string[] names=new string[]{"a","b","c"};typeName=(Enum)names;//编译时报错,有没其它方法可实现的;转换后如上enum注释中的值  我记得好像是可以通过NSString转换的,由于本人C#水平非常有限,实在找不到相关资料——记得当初看到时将转换方式记录的,但一直没找到,或者是我记错,或者记录的文件找不到了,唉。  非常感谢各位高手帮忙郁闷想给500分,竟然最高只有100分,这还要限制啊!!!Stringenum

解决方案 »

  1.   

     enum typeName
            {
                a, b, c
            } string[] names = new string[] { "a", "b", "c" };
                typeName[] typeNames = names.Select(t => (typeName)Enum.Parse(typeof(typeName), t)).ToArray();
               
      

  2.   

    没见过!如果你如此“转换”了枚举对象,你别的地方如果写代码 var x = c,编译器怎么知道这个c的类型?如果你是反过来想问题的,那么可以看看Enum的GetNames和GetValues等方法。如果只是一个学生好奇而已才问的那么知道就好了,反正你也问不出什么问题。
      

  3.   

    TO:hjywyj
      谢谢。此方法支持.Net 3.5以上的版本,但很悲哀,我使用的平台仅支持2.0,郁闷中……TO:MicrosoftCenterOfHN
      我目前就是使用这方法解决的,但其实最完美的办法还是我渴望的那种,后面我会说明。TO:moonwrite
      最完美的办法还是将数组转换为Enum类型  我想使用XML Serialize读取XML中菜单内容,然后根据菜单名称按路径读取根目录下相应节点,并根据事件激活菜单相对应的节点,节点下会有相应功能。本来使用字符串数组也可以解决(我已经实现)的,但实现起来比较麻烦,并且感觉扩展性不是很强,因此想试试Enum。  如果实在不行就只能按字符串数组+自定义类的方式实现了。
      

  4.   

    额,你真的知道Enum是干什么用滴吗?Enum是枚举,代表着在设计期就能确定的项,并且起码可以预见在相当长的时间内他不会有什么修改,比如男/女,我至少可以说在天朝正规系统里起码20年内还不会出现人妖这个选项。如果设计期无法确定,或者他经常变动,选择Enum不是个好选择,因为他需要你修改cs,并且编译,并且重新发布然后通知客户修改so,解释到这里,你还会觉着Enum的扩展性比你的xml更强吗?
      

  5.   

    To: wanghui0380
      我也稍微知道Enum类型的意义,只是当前脑子进水了,其实使用XML+Serialize可以完美实现,使用Enum之后反而不方便了,谢谢提醒。