gpt4 book ai didi

c# - 在给定 IEnumerable 和成员数据类型的情况下创建通用 IEnumerable

转载 作者:行者123 更新时间:2023-11-30 15:48:29 25 4
gpt4 key购买 nike

我得到一个 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。

-谢谢

最佳答案

您可以使用反射来调用具有运行时类型的 Cast<>。看到这个答案:How to call a generic method through reflection

但是,在某些时候,如果您想在不进行反射的情况下直接操作项目,您仍然需要在编译时知道项目的类型。只是有一个 IEnumerable<T>将实例转换为对象/IEnumerable 仍然不会比仅拥有 IEnumerable 本身对您有任何好处。您可能需要重新考虑您正在做的事情。

关于c# - 在给定 IEnumerable 和成员数据类型的情况下创建通用 IEnumerable<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com