C# linq null 问题

发布于 2024-10-28 04:38:36 字数 536 浏览 2 评论 0原文

有人可以解释一下这怎么可能吗:

foreach (var pair in Expected.Zip(
         Actual, (x, y) => new { Expected = x, Actual = y }))
{
    // No match for a 'null' series.
    if (pair.Actual == null) yield return 0;

    var actualPaths = pair.Actual.Images.Select(x => x.Path).ToList();
}

此代码(在 Microsoft Visual Studio 2008 中)在 varactualPaths = ... 行停止并表示 pair。 Actual 等于 null,因此引发 NullReferenceException

这怎么可能?我错过了什么吗?

Could someone explain me how can this be possible:

foreach (var pair in Expected.Zip(
         Actual, (x, y) => new { Expected = x, Actual = y }))
{
    // No match for a 'null' series.
    if (pair.Actual == null) yield return 0;

    var actualPaths = pair.Actual.Images.Select(x => x.Path).ToList();
}

This code (in Microsoft Visual Studio 2008) stops on line var actualPaths = ... and says that pair.Actual equals null, therefore raising a NullReferenceException.

How is this even possible? Am I missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眸中客 2024-11-04 04:38:36

if 之后,其余代码继续运行。

您需要添加 continue;,或将其余代码放入 else 块中。

After your if, the rest of the code keeps running.

You need to add continue;, or put the rest of the code in an else block.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文