c# - 组合键匹配的多个字典

标签 c# linq dictionary grouping

我得到一个

Dictionary<DateTime,double>() 

来自应用程序的不同部分。这可以返回许多字典,这就是我将它们存储在列表中的原因:

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

我现在想在 DateTime 键相等的地方组合字典,并将结果转换为数组对象 [,] 以便每一行看起来像这样:

DateTime, double_d1, double_d2, ... double_dn

其中 d1, d2, ..., dn 是列表中字典的模拟代码。 请问我该怎么做?

最佳答案

你可以试试这个:

    Dictionary<DateTime, double[]> preResult = masterlist.SelectMany(s => s).GroupBy(k => k.Key)
        .ToDictionary(k => k.Key, v => v.Select(s => s.Value).ToArray());

   var result = preResult.Select(s =>
    {
        var res = new List<object>(); 

        res.Add(s.Key);
        res.AddRange(s.Value.Cast<object>());

        return res.ToArray(); 

    }).ToArray();

关于c# - 组合键匹配的多个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42108286/

相关文章:

.net - LINQ:从另一个列表中包含的列表元素中删除

python - 使用 dask delayed 创建字典值

c# - C# HashSet 是否通过 Equals 然后通过 GetHashCode 检查重复项?

c# - Unity - 麦克风检查是否静音

c# - TFS 客户端 API - 查询以获取链接到特定文件的工作项?

c# - 与Flex交流USB设备,反之亦然

c# - LINQ:为什么数组和列表使用不同的迭代器

c# - LINQ to SQL DataContext 不更新 ConnectionString

c# - Dictionary<TKey, TValue> 什么时候调用 TKey.Equals()?

C#迭代器不能包含return语句