有一个Enum即。 CarEnum有价值 全部 - 1 宝马 - 2 奥迪 - 3
我从数据库
获取此DataTableDataTable dt = new DataTable();
dt.Columns.Add("ID", long);
dt.Columns.Add("EnumID", Int16);
我想将此表格转换为Dictionary
,EnumID
为Enum
字典格式
Dictionary<long, CarEnum> _Record = new Dictionary<long, CarEnum>();
我尝试了以下代码,但它们不是
_Record = dt.AsEnumerable().ToDictionary<DataRow, long, CarEnum>(row => row.Field<long>("ID"), row => (CarEnum)Enum.ToObject(typeof(CarEnum), row.Field<Int16>("EnumID")));
_Record = dt.AsEnumerable().ToDictionary<DataRow, long, CarEnum>(row => row.Field<long>("ID"), row => (CarEnum)(int)row.Field<Int16>("EnumID"));
这两个代码都不起作用,并且特定的异常转换无效。
请帮忙。
答案 0 :(得分:0)
根据我的理解,你只能将特定的原语转换为枚举。
在转换为枚举之前,使用short而不是Int16或将Int16转换为short。
编辑: 也许你试图抛出零值并且它没有在你的枚举中定义?
答案 1 :(得分:0)