我对 LINQ 不是特别精通,所以我可以在这个特定场景中使用一些帮助。
我有一个字典项目列表。我需要对字符串列表中存在键的字典中的值求和。
我该如何为这样的事情编写 LINQ 表达式?
Dictionary<string, decimal> cars = new Dictionary<string, decimal>();
cars.Add("Ford", 1.2M);
cars.Add("Chevy", 2M);
cars.Add("Toyota", 3M);
cars.Add("Audi", 5M);
List<string> selectedList = new List<string>();
selectedList.Add("Chevy");
selectedList.Add("Audi");
最佳答案
就是这样:
var sum = selectedList.Sum(s=>cars[s]);
或者如果您不确定,所有值都在字典中(感谢 Tim Schmelter 的更正):
var sum = selectedList.Sum(s=>cars.ContainsKey(s)?cars[s]:0);
编辑:更好的是 Tim 提出的解决方案:
selectedList.Where(cars.ContainsKey).Sum(s => cars[s])
关于c# - 计算通用列表中存在的字典中值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42229272/