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