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

时间:2016-10-13 12:45:24

标签: c# visual-studio linq visual-studio-2015

  

错误CS1061:' ICollection<>'不包含' SelectMany'的定义并且没有任何扩展方法' SelectMany'接受类型' ICollection<>'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

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

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

My Breakpoint就在这一行:

return Dimensions.Values.SelectMany(dimension => dimension.Attributes)
                        .FirstOrDefault(dimensionAttribute => key.Equals(dimensionAttribute.Key));

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

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

1 个答案:

答案 0 :(得分:0)

我不能告诉你为什么会发生这种情况(我有与立即窗口类似的问题),但我发现你可以通过静态类访问调用扩展方法。在你的情况下:

Enumerable.FirstOrDefault(Enumerable.SelectMany(Dimensions.Values, dimension => dimension.Attributes),dimensionAttribute => key.Equals(dimensionAttribute.Key));