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

本文关键字:窗口 2015 方法 扩展 Visual Studio Linq | 更新日期: 2023-09-27 18:12:58

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

Visual Studio 2015支持在调试模式下在即时窗口中评估linq lambda表达式。我已经用控制台应用程序测试了它,在控制台应用程序中,我获取Process.GetProcesses(),转到即时窗口并开始在上面写入.Select.Where。它工作得很好。

然而,我在我的项目中无法做到这一点。

我的断点在这条线上:

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

执行F10操作。然而,当我尝试在即时窗口(即Dimensions.Values.SelectMany(dimension => dimension.Attributes)(中分部分运行相同的表达式时,我会出现上述错误。

我是否试图以错误的方式对此进行评估?我错过了什么?

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

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

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