为什么 .Dump(#) 会导致我的结果翻倍?

发布于 2024-12-08 11:21:52 字数 547 浏览 1 评论 0原文

当我使用 LinqPad 运行 OData 查询时,有时需要超过标准 3 层嵌套/扩展。

我在网上发现可以调用Dump(int NestingLevel)来获得更多级别的嵌套。

但是当我这样做时,我得到两个结果集。 (一个是我扩展的嵌套,另一个是没有 .Dump 调用。)

这是为什么呢?有什么办法可以把它关掉吗?

作为示例,连接到 https://data.stackexchange.com/stackoverflow/atom 并运行此查询:

Posts.Take(1).Select(x=>new{x.Title}).Dump(1)

您将得到两个相同的结果集。像这样:

LinqPad Double

When I run an OData query with LinqPad, I sometimes need more than the standard 3 levels of nesting/expanding.

I found online that you can call Dump(int nestingLevel) to get more levels of nesting.

But when I do that I get two result sets. (One with my expanded nesting, and one as it would be without the .Dump call.)

Why is that? Is there a way I can turn that off?

As an example connect to https://data.stackexchange.com/stackoverflow/atom and run this query:

Posts.Take(1).Select(x=>new{x.Title}).Dump(1)

You will get two identical result sets. Like this:

LinqPad Double

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

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

发布评论

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

评论(1

樱桃奶球 2024-12-15 11:21:52

当您运行 C# Expression 查询时,查询的结果会自动转储。

LINQPad 编译代码

LINQPad.Dump(
    //Your code here
);

您的代码也调用 Dump(),因此您在返回到外部生成的 Dump() 调用之前转储对象。
Dump() 返回其参数以允许链接)

您只需在 C# 语句(或更高版本)查询中使用 Dump(),或者如果你想扔掉其他东西。

When you run a C# Expression query, the query's result is automatically dumped.

LINQPad compiles the code

LINQPad.Dump(
    //Your code here
);

Your code calls Dump() too, so you're dumping the object before returning to the outer generated Dump() call.
(Dump() returns its argument to allow chaining)

You only need to Dump() in a C# Statements (or higher) query, or if you want to dump something else.

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