相关疑难解决方法(0)

144
推荐指数
5
解决办法
3万
查看次数

将对象转换为IEnumerable <object>

以下是我遇到的问题的简化版本:

var list = new List<int> {1, 2, 3, 4, 5};
// list Count = 5 System.Collections.Generic.List<int>

var obj = list as object;
// obj  Count = 5   object {System.Collections.Generic.List<int>}

var enumerable = obj as IEnumerable<object>;
// enumerable   null    System.Collections.Generic.IEnumerable<object>
Run Code Online (Sandbox Code Playgroud)

注释是Visual Studio 2017中监视窗口中的值

但是,如果我输入:

obj as IEnumerable<object>
Run Code Online (Sandbox Code Playgroud)

在观察窗口,我得到:

obj as IEnumerable<object>  Count = 5   System.Collections.Generic.IEnumerable<object> {System.Collections.Generic.List<int>}
Run Code Online (Sandbox Code Playgroud)

那么为什么我可以在监视窗口中投射它并且它可以工作,但如果我在代码中执行它,它的计算结果为null?

c# visual-studio-2017

6
推荐指数
1
解决办法
147
查看次数