【发布时间】:2010-01-17 21:20:59
【问题描述】:
注意:Charlie Calvert 在下方回复说 101 个 LINQ 示例现已更新为正确的代码。
MSDN Visual C# 开发人员中心有一个名为101 LINQ 示例 的部分。我是通过 Bing 搜索找到的。
SelectMany - Compound from 1 的代码是:
public void Linq14() {
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs =
from a in numbersA,
b in numbersB
where a < b
select new {a, b};
Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs) {
Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
}
}
但是,此代码无法编译。我注意到如果我删除from a in numbersA, 末尾的逗号,而是在b in numbersB 前面添加from,它将编译并正常工作:
var pairs =
from a in numbersA
from b in numbersB
where a < b
select new {a, b};
我不确定这是否是 MSDN 示例中的错误,或者我可能正在运行不支持此语法的 C# 和 .NET 版本。
如果我查看 101 LINQ 示例 网站顶部的面包屑导航,我看到它显示的是“未来版本”。这是否表明未来的 C#/.NET 版本将支持在 LINQ 语法中使用逗号而不是 from?
我正在使用带有 .NET 3.5 SP1 的 Visual Studio 2008 Standard。
【问题讨论】: