我需要创建一个带有键的 IList 和另一个带有值的 IList,取自 IDictionary。我该怎么做?我不得不避免使用泛型(List<> 和 Dictionary<>),因为其中的类型是编译时未知的用户定义类型。
我有一个处理 DataTable 并返回字典的方法。字典键的类型是在运行时定义的:
DataTable myDataTable = ....
Type dictionaryKeysType=Type.GetType("myType");
IDictionary myDictionary = ProcessDataTable (myDataTable, dictionaryKeysType);
IList keys= (IList)myDictionary.Keys;
IList values= (IList)myDictionary.Values;
我该怎么做?我不得不避免使用泛型(List<> 和 Dictionary<>),因为其中的类型是编译时未知的用户定义类型。所以,虽然该方法返回一个'Dictionary<>',但我不能声明:
Dictionary<dictionaryKeysType, int> myDictionary = ProcessDataTable (myDataTable, dictionaryKeysType)
所以我必须将它作为“字典”接收。使用“var”不是解决方案,因为稍后尝试将其转换为“字典”时会出现问题
我的代码编译但在转换为 IList 时引发异常。例如,如果“myType”是“uint”,我得到:(无法将“KeyCollection[System.UInt32,System.Int32]”类型的对象转换为“System.Collections.IList”类型)。
请帮忙 :(