我有一个列表列表,每个列表包含不同类别的对象.要将元素添加到正确的列表,我需要能够找到列表的类型.我目前正试图以这种方式完成它:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这将返回System.Collections.Generic.List`1 [[myType,etc,etc]]的List Type.有没有办法从List类型中提取'myType',以进行适当的比较?
使用GetGenericArguments方法:
Type listTypeParam = myListType.GetGenericArguments()[0];
Run Code Online (Sandbox Code Playgroud)
由于myListType是具有一个类型参数的泛型类型的实例,因此T将在返回的数组的第0个位置返回该类型.
| 归档时间: |
|
| 查看次数: |
2452 次 |
| 最近记录: |