Enum vizが1つあります。 CarEnumた値 すべて - 1 BMW - 2 アウディ - 3列Cとして列挙型のDataTableを辞書に変換します。
私は、データベースからこのデータテーブルを取得しています
DataTable dt = new DataTable();
dt.Columns.Add("ID", long);
dt.Columns.Add("EnumID", Int16);
私はEnumID
Enum
として辞書にDictionary
にこのテーブルを変換したいですフォーマット
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を持っていないのですか? – dbraillon
'Enum'は抽象クラスであり、インスタンス化できません。 – Oliver
私は具体的なEnumを持っています。私は、DataTableからのEnumIDに基づいて、列としてDictionary型の列挙型を追加したい。 –