如何计算字典中除第一项值之外的所有值的总和?

时间:2011-11-14 21:35:18

标签: c# linq c#-3.0

我有一个(字符串,十进制)字典,需要从第二个项目开始计算所有值(十进制值)的总和。是否可以使用LINQ实现?

5 个答案:

答案 0 :(得分:52)

使用LINQ非常容易实现:

myDict.Skip(1).Sum(x => x.Value);

但是,标准Dictionary类不保证项目的排序,因此“第一”项目可以是任何内容。

答案 1 :(得分:4)

为什么不把它们全部加起来,然后减去第一项?

myList.Sum(x => x.Value) - myList.First().Value;

答案 2 :(得分:2)

顺便跳过第一个元素;

dict.Skip(1).Sum(ix => ix.Value);

答案 3 :(得分:2)

使用LINQ很容易:

var dict = new Dictionary<string, decimal>();

dict.Add("A", 1.5m); // This value will be skipped
dict.Add("B", 2.7m);
dict.Add("C", 1.3m);
dict.Add("D", 3.9m);

var total = dict.Skip(1).Sum(v => v.Value);

Console.WriteLine(total);

答案 4 :(得分:0)

获取您的 TValue 项的总和

total = d.Skip(0).Sum(x => x.Value)