【发布时间】:2017-03-02 06:33:48
【问题描述】:
有一个枚举即。 CarEnum 具有值 全部 - 1 宝马 - 2 奥迪 - 3
我正在从数据库中获取此数据表
DataTable 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"));
两个代码都不起作用,并且特定于异常的转换无效。
请帮忙。
【问题讨论】:
-
为什么要 Enum 类型?您没有特定的枚举吗?
-
Enum是抽象类,无法实例化。 -
我有特定的枚举。我想根据数据表中的 EnumID 在 Dictionary 中添加 Enum 类型作为列。
-
然后使用这个特定的枚举而不是枚举类型。
-
我使用了特定的枚举但无法正常工作。让我再重写一次代码,这样你就不会糊涂了。
标签: c# linq dictionary datatable