1

我正在尝试从 Microsoft 网站学习 lambda 表达式,并尝试将其应用到我创建的场景中,以更深入地了解该网站试图展示的内容。我偶然发现了与 linq 和 lambda 相关联的聚合函数。请告知我要实现的正确语法是什么。基本上,我有一个名为 item 的类,它有 3 个属性:类别、ID 和重量。一个类别可以有多个与之关联的 ID,我正在考虑获取一个类别的总权重,它是具有我指定的类别的每个 ID 的所有单独权重的总和。更具体地说,这是我的结构的摘录:

class item
    {
        public int NodeID
        { get; set; }
        public int Weight
        { get; set; }
        public int Category
        { get; set; }
    }

我有以下字典:

Dictionary<int,item> _itemsReceivedList=new Dictionary<int,item>();

这就是我试图获得类别 c 的总重量的地方:

_itemsReceivedList.Select(x=>x.Value.Category==c)
.Sum( what should I put here for the predicate? )

我想将每个类别为 c 的项目的重量相加。请指教。谢谢!

4

3 回答 3

3
var sum = _itemsReceivedList
            .Where(x=>x.Value.Category==c)
            .Sum(x=>x.Value.Weight);
于 2013-11-02T20:12:15.353 回答
3
int weight = _itemsReceivedList.Where(x => x.Value.Category == c)
                               .Select(s => s.Value)
                               .Sum(item => item.Weight);

我假设在c其他地方被声明为int

丝网印刷

于 2013-11-02T20:12:44.230 回答
2

写这个

_itemsReceivedList.Where(x=>x.Value.Category==c).Sum(x => x.Weight);
于 2013-11-02T20:12:41.853 回答