【发布时间】:2010-03-31 22:29:27
【问题描述】:
我得到一个 IEnumerable,我知道它是一个对象数组。我也知道元素的数据类型。现在我需要将其转换为 IEnumerable<T>,其中 T 是提供的类型。比如
IEnumerable results = GetUsers();
Type t = GetType(); //Say this returns User
IEnumerable<T> users = ConvertToTypedIEnumerable(results, t);
我现在想将其转换/转换为 IEnumerable<User>。此外,我希望能够为任何类型执行此操作。
我不能使用 IEnumerable.Cast,因为为此我必须知道在编译时将其转换为的类型,而我没有。我在运行时得到类型和 IEnumerable。
- 谢谢
【问题讨论】:
-
什么意思,编译时没有类型?
T在IEnumerable<T>(第二行)中的示例中还有什么? -
如果您在编译时不知道类型,那么您也无法使用
typeof。您应该更新您的示例代码。 -
更新了示例代码,使事情更加清晰。
-
很遗憾,您的澄清并没有真正帮助。您仍然需要在编译时知道
T的类型。