开发者社区> 多吉> 正文

枚举中文转换为英文及调用

简介: 1.枚举 1 /// 2 /// 语言类别 3 /// 4 public enum LanguageType 5 { 6 [Description("所有语言")] 7 ...
+关注继续查看

1.枚举

 1 /// <summary>
 2         /// 语言类别
 3         /// </summary>
 4         public enum LanguageType
 5         {
 6             [Description("所有语言")]
 7             All = 0,
 8 
 9             [Description("中文")]
10             cn = 1,
11 
12             [Description("英文")]
13             en = 2,
14 
15             [Description("印度斯坦语")]
16             Hindustani = 3,
17 
18             [Description("西班牙语")]
19             Spanish = 4,
20 
21             [Description("俄语")]
22             Russian = 5,
23 
24             [Description("阿拉伯语")]
25             Arabic = 6,
26 
27             [Description("孟加拉语")]
28             Bengali = 7,
29 
30             [Description("葡萄牙语")]
31             Portuguese = 8,
32 
33             [Description("马来-印尼语")]
34             MalayIndonesian = 9,
35 
36             [Description("法语")]
37             French = 10,
38 
39             [Description("日语")]
40             Japanese = 11,
41 
42             [Description("韩语")]
43             Korean = 12
44         }
View Code

2.方法

  1 public class EnumHelp
  2     {
  3         public static string GetDescription(Enum obj)
  4         {
  5             string objName = obj.ToString();
  6             Type t = obj.GetType();
  7             FieldInfo fi = t.GetField(objName);
  8             DescriptionAttribute[] arrDesc = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
  9 
 10             return arrDesc[0].Description;
 11         }
 12 
 13         /// <summary>
 14         /// 获取枚举值的详细文本
 15         /// </summary>
 16         /// <param name="e"></param>
 17         /// <returns></returns>
 18         public static string GetEnumDescription(object e)
 19         {
 20             //获取字段信息
 21             System.Reflection.FieldInfo[] ms = e.GetType().GetFields();
 22 
 23             Type t = e.GetType();
 24             foreach (System.Reflection.FieldInfo f in ms)
 25             {
 26                 //判断名称是否相等
 27                 if (f.Name != e.ToString()) continue;
 28 
 29                 //反射出自定义属性
 30                 foreach (Attribute attr in f.GetCustomAttributes(true))
 31                 {
 32                     //类型转换找到一个Description,用Description作为成员名称
 33                     System.ComponentModel.DescriptionAttribute dscript = attr as System.ComponentModel.DescriptionAttribute;
 34                     if (dscript != null)
 35                         return dscript.Description;
 36                 }
 37 
 38             }
 39 
 40             //如果没有检测到合适的注释,则用默认名称
 41             return e.ToString();
 42         }
 43 
 44 
 45         ///<summary>
 46         /// 返回 Dic<枚举项,描述>
 47         ///</summary>
 48         ///<param name="enumType"></param>
 49         ///<returns>Dic<枚举项,描述></returns>
 50         public static Dictionary<string, string> GetEnumDic(Type enumType)
 51         {
 52             Dictionary<string, string> dic = new Dictionary<string, string>();
 53             FieldInfo[] fieldinfos = enumType.GetFields();
 54             foreach (FieldInfo field in fieldinfos)
 55             {
 56                 if (field.FieldType.IsEnum)
 57                 {
 58                     Object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
 59 
 60                     dic.Add(field.Name, ((DescriptionAttribute)objs[0]).Description);
 61                 }
 62 
 63             }
 64 
 65             return dic;
 66         }
 67 
 68 
 69         ///<summary>
 70         /// 从枚举类型和它的特性读出并返回一个键值对
 71         ///</summary>
 72         ///<param name="enumType">Type,该参数的格式为typeof(需要读的枚举类型)</param>
 73         ///<returns>键值对</returns>
 74         public static NameValueCollection GetNVCFromEnumValue(Type enumType)
 75         {
 76             NameValueCollection nvc = new NameValueCollection();
 77             Type typeDescription = typeof(DescriptionAttribute);
 78             System.Reflection.FieldInfo[] fields = enumType.GetFields();
 79             string strText = string.Empty;
 80             string strValue = string.Empty;
 81             foreach (FieldInfo field in fields)
 82             {
 83                 if (field.FieldType.IsEnum)
 84                 {
 85                     strValue = ((int)enumType.InvokeMember(field.Name, BindingFlags.GetField, null, null, null)).ToString();
 86                     object[] arr = field.GetCustomAttributes(typeDescription, true);
 87                     if (arr.Length > 0)
 88                     {
 89                         DescriptionAttribute aa = (DescriptionAttribute)arr[0];
 90                         strText = aa.Description;
 91                     }
 92                     else
 93                     {
 94                         strText = field.Name;
 95                     }
 96                     nvc.Add(strValue, strText);
 97                 }
 98             }
 99             return nvc;
100         }
101     }
View Code

3.调用

1 protected string GetLanguageTypeName(int languageValue) {
2             Dictionary<string,string> dic = EnumHelp.GetEnumDic(typeof(CommonEnum.LanguageType));
3             string name = Enum.GetName(typeof(HX.Common.CommonEnum.LanguageType), languageValue);
4             
5             return dic[name];
6         }
View Code

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19586 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24727 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13743 0
Unity调用Windows弹框、提示框(确认与否,中文)
Unity调用Windows弹提示框 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar...
3259 0
HTML Help Workshop制作chm帮助文件和在应用程序中的调用
最近在使用微软公司提供的HTML   Help   Workshop工具包 制作chm帮助文件, 现在总结如下:     一、制作前的HTML文件准备工作       由于chm帮助文件是基于HTML文件特征的,所以前期编写HTML文件的准备工作很重要。
1008 0
自然语言处理工具python调用hanlp中文实体识别
Hanlp作为一款重要的中文分词工具,在GitHub的用户量已经非常之高,应该可以看得出来大家对于hanlp这款分词工具还是很认可的。本篇继续分享一篇关于hanlp的使用实例即Python调用hanlp进行中文实体识别。
1456 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14590 0
.net 中 前台aspx页面调用后台.cs文件中的变量
定义全局变量 在Page_load上面写 public string Url;     后台代码: public partial class WebForm2 : System.Web.
900 0
+关注
多吉
数据库相关技术专家
73
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载