我有一个用VB.NET编写的LINQ查询:
foo = (From p In lOrder
Group By p.ItemCode Into Group = Sum(p.Quantity)
).ToDictionary(Function(x) x.ItemCode, Function(x) x.Group)
我的问题是翻译总和。 C#似乎不太喜欢它。
有人可以帮我翻译这个查询吗?
谢谢
答案 0 :(得分:2)
以下是C#中LINQ查询的精确翻译:
var foo = lOrder.GroupBy(p => p.ItemCode,
(key, values) => new
{
ItemCode = key,
Group = values.Sum(v => v.Quantity)
})
.ToDictionary(x => x.ItemCode, x => x.Group);
答案 1 :(得分:0)
如果我理解正确,您希望在项目代码与此代码下的项目累积数量之间进行映射。
给定IEnumerable命名订单,您可以执行以下操作:
var foo = from p in orders
group p by p.ItemCode into OrderGroupedByCode
select new { Code = OrderGroupedByCode.Key, Sum = OrderGroupedByCode.Sum(x => x.Quentity) };
这为您提供了IEnumerable的匿名对象,您可以轻松地将其转换为您想要的字典:
foo.ToDictionary(x => x.Code, x => x.Sum)