注意:Charlie Calvert在下面回复说 101 LINQ 示例现已更新为正确的代码。
MSDN Visual C# 开发人员中心有一个名为101 LINQ Samples的部分。我通过必应搜索找到了这个。
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,
添加,它将编译并正常工作:from
b in numbersB
var pairs =
from a in numbersA
from b in numbersB
where a < b
select new {a, b};
我不确定这是否是 MSDN 示例中的错误,或者我可能正在运行不支持此语法的 C# 和 .NET 版本。
如果我查看101 LINQ Samples网站顶部的面包屑导航,我看到它显示的是“未来版本”。这是否表明未来版本的 C#/.NET 将支持使用逗号而不是from
LINQ 语法?
我正在使用带有 .NET 3.5 SP1 的 Visual Studio 2008 Standard。