请在VB.Net中获取LINQ查询的帮助。
我有这个简单的小组声明:
Dim drivers = From d In DriversOwners _
Group d By Key = d.UnitNumber Into Group _
Select Key, DriverGroup = Group
这有效,并返回我需要使用的数据。现在我想使用For Each构造迭代组。像这样:
For Each x In drivers
Next
然而,编译器正在咆哮我,告诉我
“'x'在此上下文中无法访问,因为它是'朋友'。”
任何人都知道我在这里做错了吗?
提前致谢。
答案 0 :(得分:5)
在.NET Framework 3.5项目中启用LINQ
将项目移动到.NET时 框架3.5,参考 System.Core和项目级导入 for System.Linq(仅在Visual Basic中) 自动添加。 如果你想 要使用LINQ功能,还必须使用 打开选项推断(在Visual Basic中) 只有) [我的重点]。
当我将目标框架从2.0更改为3.5时,Visual Studio会自动添加System.Core程序集,并自动导入System.Linq命名空间。现在为什么世界上也没有将Option Infer设置为“On”?
答案 1 :(得分:2)
在我看来,之前声明了变量x - 作为类字段,方法参数或局部变量。
我是对的吗?
答案 2 :(得分:1)
我不确定你是否已经解决了这个问题。我今天遇到了完全相同的问题,最终为我工作的是在For Each循环中不使用单字母变量。我的代码和你的代码一样:
For Each x In a
...
Next
当我将代码更改为以下代码时,它起作用了:
For Each retVal in a
...
Next
我还发现任何单字母变量都有相同的'Friend'错误行为。
我不知道它为什么会这样,但我想我会把这个问题传递给我,以防这个问题仍然存在。