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())
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));
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:
idea/PhpStorm中的terminal修改为git bash不支持中文问题解决