我以为我之前有过这个工作,但我只是没有看到它:
折扣是Dictionary<PartType, double>
。数据是List<PartType>
。
var d = discounts.Keys.SelectMany(
k =>
data.Where( l => l.PartTypeID.Equals( k.PartTypeID ) ) )
.Select( s => new { k, l } );
错误是,当前上下文中不存在名称“k”(和“l”)。
我最终想要做的是将字典中的double
应用于数据中所有匹配的PartType。
答案 0 :(得分:1)
我怀疑你的意思是:
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
答案 1 :(得分:0)
l
位于Where
中lambda的上下文中。我想你的意思是s => new {k, s}
。你的括号似乎也错了。第3行的最后一个括号应该在第4行。