从内部 Select 引用外部 SelectMany 参数

发布于 2024-10-21 04:41:10 字数 417 浏览 1 评论 0原文

我以为我之前已经可以使用它了,但我只是没有看到它:

discounts 是一个 Dictionary。数据是一个List

var d = discounts.Keys.SelectMany(
    k =>
    data.Where( l => l.PartTypeID.Equals( k.PartTypeID ) ) )
    .Select( s => new { k, l } );

错误是,名称“k”(和“l”)在当前上下文中不存在。

我最终想要做的是将字典中的 double 应用于数据中所有匹配的 PartType。

I thought I had got this to work before, but I just don't see it:

discounts is a Dictionary<PartType, double>. data is a List<PartType>.

var d = discounts.Keys.SelectMany(
    k =>
    data.Where( l => l.PartTypeID.Equals( k.PartTypeID ) ) )
    .Select( s => new { k, l } );

The error is, the name 'k' (and 'l') does not exist in the current context.

What I eventually want to do is apply the double from the dictionary to all the matching PartTypes in data.

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

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

发布评论

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

评论(2

荆棘i 2024-10-28 04:41:10

我怀疑你的意思是:

var d = discounts.Keys.SelectMany(
    k => data.Where(l => l.PartTypeID.Equals(k.PartTypeID)),
    (k, l) => new { k, l });

……但如果没有更多信息,很难说清楚。老实说,看起来您确实想要加入,例如

var d = discounts.Keys.Join(data,
           k => k.PartTypeID, // Key from discounts.Keys
           l => l.PartTypeID, // Key from data
           (k, l) => new { k, l }); // Projection from the two values

I suspect you mean:

var d = discounts.Keys.SelectMany(
    k => data.Where(l => l.PartTypeID.Equals(k.PartTypeID)),
    (k, l) => new { k, l });

... but it's hard to tell without more information. To be honest it looks like you really want a join, e.g.

var d = discounts.Keys.Join(data,
           k => k.PartTypeID, // Key from discounts.Keys
           l => l.PartTypeID, // Key from data
           (k, l) => new { k, l }); // Projection from the two values
笑看君怀她人 2024-10-28 04:41:10

l 位于 Where 中 lambda 的上下文中。我认为你的意思是 s =>;新的{k,s}。另外你的括号似乎是错误的。第 3 行的最后一个括号应该在第 4 行。

The l is in the context of the lambda in the Where. I think you mean s => new {k, s}. Also your parentheses seem wrong. That last parentheses on line 3 should be on line 4.

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