gpt4 book ai didi

c# - 通过 PropertyDescriptorCollection 循环获取列表项的类型

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:43 24 4
gpt4 key购买 nike

遍历泛型 T 的属性,我想知道 T 是否恰好是 List 那么什么类型的该列表包含的项目。

PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
foreach (PropertyDescriptor prop in properties)
if (prop.PropertyType.Name.Equals("List`1"))
???

我可以使用上面的代码检测类型是否为 List,但是我怎样才能获得列表项的类型?

最佳答案

您可以使用 GetGenericArguments 方法获取泛型参数,它将返回一个类型数组,您可以只获取第一个类型,即列表的泛型参数类型:

var type = prop.PropertyType.GetGenericArguments()[0];

此外,我建议这样而不是比较名称来检查属性类型:

if(prop.PropertyType.IsGenericType &&
prop.PropertyType.GetGenericTypeDefinition() == typeof(List<>))

关于c# - 通过 PropertyDescriptorCollection 循环获取列表项的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213837/

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