c# - 如何通过删除通用参数从 typeof(List<T>) 获取 typeof(List<>)

标签 c# generics

我有typeof(List<T>)作为类型对象,但我需要 typeof(List<>)我可以从中使用 MakeGenericType()检索 List 的类型对象,是否可能?

更新:伙计们,谢谢。这似乎是一个微不足道的问题。但无论如何,我给大家投了赞成票并接受了第一个答案。

最佳答案

如果我正确理解你的问题,你有一个通用类型( List<int> )和另一个类型(可以说 long )并且你想制作一个 List<long> .可以这样做:

Type startType = listInt.GetType();   // List<int>
Type genericType = startType.GetGenericTypeDefinition()  //List<T>
Type targetType = genericType.MakeGenericType(secondType) // List<long>

但是,如果您使用的类型确实是列表,那么如果您实际使用的话可能会更清楚:

Type targetType = typeof(List<>).MakeGenericType(secondType) // List<long>

关于c# - 如何通过删除通用参数从 typeof(List<T>) 获取 typeof(List<>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038969/

相关文章:

c# - 为什么我的 LDAP 查询失败?

java - 给予泛型的正确方法是什么?

c# - 使用 AutoFac 的通用复杂类型注册通用类型

generics - Rust 实现功能只要 `Integer::from` 有效

c# - MSTest 中的数据驱动测试 - TestContext.DataRow 的问题

c# - PRISM:区域未向 RegionManager 注册

c# - 使用另一个线程修改绑定(bind)数据表时不刷新数据网格

c# - 这些方法线程安全吗?

java - 如何获取接口(interface)中泛型的实例

c# - ASP.net 日历控件的任何免费替代品?