Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#dictionary-添加存储在一个键上的值(列表)_C#_Dictionary - Fatal编程技术网

c#dictionary-添加存储在一个键上的值(列表)

c#dictionary-添加存储在一个键上的值(列表),c#,dictionary,C#,Dictionary,这可能很简单,但在堆栈溢出处搜索并没有得到期望的结果 我有一本简单的字典,定义为 var GetAllInjData = new Dictionary<double, List<double>>(); var GetAllInjData=new Dictionary(); 我所要做的就是从dict中选取每个键的值列表,并将它们相加得到一个值 我想你可以用LINQ做到这一点: GetAllInjData[<key>].Sum(); GetAllInjDat

这可能很简单,但在堆栈溢出处搜索并没有得到期望的结果

我有一本简单的字典,定义为

var GetAllInjData = new Dictionary<double, List<double>>();
var GetAllInjData=new Dictionary();

我所要做的就是从dict中选取每个键的值列表,并将它们相加得到一个值

我想你可以用LINQ做到这一点:

GetAllInjData[<key>].Sum();
GetAllInjData[].Sum();

我想你可以用LINQ来做这件事:

GetAllInjData[<key>].Sum();
GetAllInjData[].Sum();
查看循环后进行编辑

IEnumerable<double> FieldProd = GetAllInjData.Select(a => a.Value.Sum());
IEnumerable FieldProd=GetAllInjData.Select(a=>a.Value.Sum());
查看循环后进行编辑

IEnumerable<double> FieldProd = GetAllInjData.Select(a => a.Value.Sum());
IEnumerable FieldProd=GetAllInjData.Select(a=>a.Value.Sum());
如果需要每个键的总和,则可以使用
选择
将每个键-值对投影到一个新类型,并将键和值的总和作为属性:

GetAllInjData.Select(kvp => new {Key = kvp.Key, Value = kvp.Value.Sum()})
如果需要每个键的总和,则可以使用
Select
将每个键值对投影到一个新类型,并将键和值的总和作为属性:

GetAllInjData.Select(kvp => new {Key = kvp.Key, Value = kvp.Value.Sum()})

试试这个:

double key = 1; //for example
double sum = 0.0;
GetAllInjData[key].ForEach(x => sum += x);

试试这个:

double key = 1; //for example
double sum = 0.0;
GetAllInjData[key].ForEach(x => sum += x);
像这样:

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}");
像这样:

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}");
试试这个

            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();
Dictionary GetAllInjData=new Dictionary(){
{1,新列表(){1,2,3,4,5,6},
{2,新列表(){11,12,13,14,15,16},
{3,新列表(){21,22,23,24,25,26}
};
double results=GetAllInjData[2].Sum();
试试这个

            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();
Dictionary GetAllInjData=new Dictionary(){
{1,新列表(){1,2,3,4,5,6},
{2,新列表(){11,12,13,14,15,16},
{3,新列表(){21,22,23,24,25,26}
};
double results=GetAllInjData[2].Sum();

如何将其放入循环中,即针对dict中的每个键。@tony将其放入循环的目的是什么。Sum()将返回所有项的总数。这是我最终所做的:List FieldProd=new List();对于(int k=0;k