这可能很简单但是在堆栈溢出时搜索并没有给我想要的结果。
我有一个简单的字典定义为
var GetAllInjData = new Dictionary<double, List<double>>();
我想要做的就是从dict中选择每个键的值列表并将它们相加以获得单个值!
答案 0 :(得分:2)
GetAllInjData.SelectMany(a => a.Value).Sum();
看到你的循环后编辑
IEnumerable<double> FieldProd = GetAllInjData.Select(a => a.Value.Sum());
答案 1 :(得分:0)
我认为你可以用LINQ做到这一点:
GetAllInjData[<key>].Sum();
答案 2 :(得分:0)
如果您希望每个键的总和 ,那么您可以使用Select
将每个键值对投影到一个新类型,其中键和值的总和作为属性:
GetAllInjData.Select(kvp => new {Key = kvp.Key, Value = kvp.Value.Sum()})
答案 3 :(得分:0)
试试这个:
double key = 1; //for example
double sum = 0.0;
GetAllInjData[key].ForEach(x => sum += x);
答案 4 :(得分:0)
像这样:
var sums =
from keyVal in GetAllInjData
select new
{
ForKey = keyVal.Key,
SumIs = keyVal.Value.Sum()
};
foreach(var sum in sums)
Debug.WriteLine($"Key: {sum.ForKey} Sum: {sum.SumIs}");
答案 5 :(得分:0)
试试这个
Dictionary<double, List<double>> GetAllInjData = new Dictionary<double, List<double>>() {
{1, new List<double>() {1,2,3,4,5,6}},
{2, new List<double>() {11,12,13,14,15,16}},
{3, new List<double>() {21,22,23,24,25,26}}
};
double results = GetAllInjData[2].Sum();