相关文章推荐
胆小的马克杯  ·  Qt ...·  1 月前    · 
博学的高山  ·  sourcetree 取消推送-掘金·  9 月前    · 
文雅的沙滩裤  ·  Oracle the network ...·  1 年前    · 
Dictionary<int, string> mydic = new Dictionary<int, string>();
foreach (EnumName foo in Enum.GetValues(typeof(EnumName)))
    mydic.Add((int)foo, foo.ToString());
var dict = Enum.GetValues(typeof(EnumName))
               .Cast<EnumName>()
               .ToDictionary(t => (int)t, t => t.ToString());
/// <summary>
/// 枚举转字典集合(Key是value,Value是description(如果不存在description 则是name))
/// </summary>
/// <typeparam name="T">枚举类名称</typeparam>
/// <param name="keyDefault">默认key值</param>
/// <param name="valueDefault">默认value值</param>
/// <returns>返回生成的字典集合</returns>
public static Dictionary<string, object> EnumListDic<T>(string keyDefault, string valueDefault = "")
    Dictionary<string, object> dicEnum = new Dictionary<string, object>();
    Type enumType = typeof(T);
    if (!enumType.IsEnum)
        return dicEnum;
    if (!string.IsNullOrEmpty(keyDefault)) //判断是否添加默认选项
        dicEnum.Add(keyDefault, valueDefault);
    string[] fieldstrs = Enum.GetNames(enumType); //获取枚举字段数组
    foreach (var item in fieldstrs)
        string description = string.Empty;
        var field = enumType.GetField(item);
        object[] arr = field.GetCustomAttributes(typeof(DescriptionAttribute), true); //获取属性字段数组
        if (arr != null && arr.Length > 0)
            description = ((DescriptionAttribute)arr[0]).Description;   //属性描述
            description = item;  //描述不存在取字段名称
        dicEnum.Add(description, (int)Enum.Parse(enumType, item));  //不用枚举的value值作为字典key值的原因从枚举例子能看出来,其实这边应该判断他的值不存在,默认取字段名称
    return dicEnum;
                    方法1Dictionary<int, string> mydic = new Dictionary<int, string>();foreach (EnumName foo in Enum.GetValues(typeof(EnumName))){    mydic.Add((int)foo, foo.ToString());}方法2var dict = Enum.GetValues(type
				
在业务开发过程中,添加枚举,在固定枚举值的同时,也需要中文的文案。 如果不想添加语言资源项、添加枚举语资源项,可以使用特性标记。 属性描述 DescriptionAttribute 先看案例: 1 public enum WheelchairDataType 2 { 3 [Description("前进加速")] 4 Fo...
FieldInfo[] fields = typeof(EnumToDictionaryEnum) .GetFields(BindingFlags.Static | BindingFlags.Public) ?? Array.Empty<FieldInfo>(); var dictionary = fields.ToDictionary(k => k.Name, v => (int)v.GetValue(null)); var dictionary2 = Enum
Enum类型没有实现IEquatable接口,Dictionary中使用Enum作为键时,将发生装箱,使效率降低。 此时可用Dictionary中一个接收IEqualityComparer<T>类型的重载版本来避免对枚举的装箱操作。 public class Product public string Name { get; set; } public int...
这一部分主要讲的是如何在lua代码中访问C#中的Dictionary对象与枚举类型,相比之之前的算是比较简单的了,基本上看一下就完全会使用了 lua访问C#中的Dictionary 首先:作者也说过,对于这个例子中的方法BindMap()方法无需可以关注,这个只是为了保证例子可以独立运行,平时的开发中只需要将需要的类型添加在在CustomSetting的列表之中即可。 我们需要将其换为对应的字典集合,其中key是枚举名称,value是枚举对象 var CityDic = Enum.GetValues(typeof(City)) //获取枚举值集合 .Cast<City>() //强制映射为City .ToDictionary(key => key.To
Java的enum类型是一种特殊的类型,它可以用来定义一组有限的常量。enum类型是Java语言中的一个关键字,可以用来定义枚举类型。每个enum常量都是enum类型的一个实例。enum类型可以用来定义枚举类型,例如月份、星期、颜色等。 enum Season { SPRING, SUMMER, FALL, WINTER 上面代码定义了一个枚举类型Season,它有4个枚举常量:SPRING、SUMMER、FALL和WINTER。 enum类型也可以带有构造函数和方法,带有构造函数和方法的enum类型需要利用关键字enum定义 enum Color { RED("红色", 1), GREEN("绿色", 2), BLUE("蓝色", 3); private String name; private int index; private Color(String name, int index) { this.name = name; this.index = index; public String getName() { return name; public void setName(String name) { this.name = name; public int getIndex() { return index; public void setIndex(int index) { this.index = index; 上面代码定义了一个枚举类型Color,它有3个枚举常量:RED、GREEN和BLUE。带有构造函数和方法的enum类型可以更方便的存储和获取枚举常量的信息。 总结:Java的enum类型是一种特殊的类型,它可以用来定义一组有限的常量,可以避免使用常
git error:insufficient permission for adding an object to repository database ./object 解决办法 26906 Yang_JK_accrDays: 博主总结的很好了,我再来补充一点:【当完全关闭了Hyper-V 后发现遇到 VBox this processor is not supported in this version这个问题】 win10 企业版 2016 需要再勾选Hyper-V平台下的Hyper-V服务,方可进行安装centOS idea/PhpStorm中的terminal修改为git bash不支持中文问题解决