我有一个列表列表,每个列表包含不同类别的对象。要将元素添加到正确的列表中,我需要能够找到列表的类型。我目前正在尝试以这种方式完成它:
foreach(object o in DataBase)
{
Type t = o.GetType();
if (t != typeof(T))
continue;
else
{
List<T> L = (List<T>)o;
L.Add(element);
break;
}
}
但是,这会返回 System.Collections.Generic.List`1[[myType,etc,etc]] 的列表类型。 有没有办法从 List 的类型中提取“myType”,以便进行适当的比较?
最佳答案
使用GetGenericArguments
方法:
Type listTypeParam = myListType.GetGenericArguments()[0];
因为 myListType
是一个只有一个类型参数的泛型类型的实例,类型 T
将在返回数组的第 0 个位置返回。
关于c# - 从对象中获取 List<T> 的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8966252/