如何枚举对象?

Pab*_*blo 0 c#

我试图枚举实际上可枚举的Object,但类型存储在Type变量中

public Type MyListType { get; set; }
public Object MyList { get; set; }
...
foreach (var item in Convert.ChangeType(MyList, MyListType))
{
...
}
Run Code Online (Sandbox Code Playgroud)

这显然会产生错误,因为ChangeType仍然返回Object.如何将MyList转换为可枚举类型,尤其是MyListType?

更新:

更清楚的是,Object是BindingList<T>type,其中T驻留在MyListType中.

Jon*_*eet 5

好吧,如果它实际上是可枚举的,可能它实现了IEnumerable...所以你可以使用:

foreach (object item in (IEnumerable) MyList)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

你不会有一个更好的编译时类型item不是object反正...