我有一个Type变量,它是某种类型的List。假设我不知道项目类型,我该如何获得项目类型?
像
这样的东西x = ["a","b","c"]
list = x
for i in list:
print("\nletter",i,"and\n")
i+=i
编辑:我甚至尝试了...
var type = property.PropertyType;
if (type == typeof(List<>) // I know this doesn't work
{ do something }
...
和type is Ilist
,结果都是假的。
即使只是尝试
type.IsGenericType
我不知道自己做错了什么。
答案 0 :(得分:1)
根据我的理解,您要检查类型是否为列表,以及列表的元素是否为X类型。
您可以执行以下操作:
var type = (new List<int>()).GetType();
if (type.GetInterface("IList") != null && type.IsGenericType
&& type.GenericTypeArguments.Length == 1
&& type.GenericTypeArguments[0] == typeof(int))
Console.WriteLine(true); //Outputs True