Linq扩展方法在Visual Studio 2015立即窗口中不可用

sin*_*ash 5 c# linq visual-studio visual-studio-2015

错误CS1061:'ICollection <>'不包含'SelectMany'的定义,并且没有可以找到接受类型'ICollection <>'的第一个参数的扩展方法'SelectMany'(您是否缺少using指令或程序集引用? )

Visual Studio 2015支持在即时窗口中以调试模式评估linq lambda表达式.我已经使用控制台应用程序对其进行了测试,其中我获取Process.GetProcesses(),转到立即窗口并开始写入.Select.Where在其上.它工作正常.

但是,我无法在我的项目中做同样的事情.

我的断点就在这条线上:

return Dimensions.Values.SelectMany(dimension => dimension.Attributes)
                        .FirstOrDefault(dimensionAttribute => key.Equals(dimensionAttribute.Key));
Run Code Online (Sandbox Code Playgroud)

做一个F10工作.但是,当我尝试在部分中运行相同的表达式时,在即时窗口中,即Dimensions.Values.SelectMany(dimension => dimension.Attributes),我得到上述错误.

我是否试图以不正确的方式评估这个问题?我错过了什么?

Len*_*art 1

我无法告诉您发生这种情况的原因(我对立即窗口也有类似的问题),但我发现您可以通过静态类访问来调用扩展方法。在你的情况下,这将是:

Enumerable.FirstOrDefault(Enumerable.SelectMany(Dimensions.Values, dimension => dimension.Attributes),dimensionAttribute => key.Equals(dimensionAttribute.Key));
Run Code Online (Sandbox Code Playgroud)