gpt4 book ai didi

c# - MSDN 上的 101 LINQ Samples 中的这段代码是否存在错误? (更新 : Fixed)

转载 作者:太空狗 更新时间:2023-10-30 00:58:52 28 4
gpt4 key购买 nike

注意: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 示例 网站顶部的面包屑,我会看到它显示“ future 版本”。这是否表明 C#/.NET 的 future 版本将支持在 LINQ 语法中使用逗号而不是 from

我在 .NET 3.5 SP1 中使用 Visual Studio 2008 Standard。

最佳答案

是的,这是示例中的错误。

我强烈怀疑它来自可能支持该语法的预发布版本。我预计它仍会出现在“ future 版本”下,因为在编写它时,它是关于 future 版本的。

C# 4 肯定不支持此语法,这是唯一公开承认的 future 版本。

关于c# - MSDN 上的 101 LINQ Samples 中的这段代码是否存在错误? (更新 : Fixed),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2082701/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com