首页 > 解决方案 > 如何在 C# 中转换字典

问题描述

我有一本像下面这样的字典,我想转换

Dictionary<List<String>,Object>

Dictionary<String,Object>

标签: c#dictionary

解决方案


您可以按照问题评论中的说明完成映射,如下所示:

Dictionary<List<String>, Object> original = new Dictionary<List<string>, object>()
{
    { new List<string> { "A", "B", "C" }, 42 }
};

var mapped = original
    .SelectMany(kv => kv.Key, (val, key) => new { Key = key, val.Value})
    .ToDictionary(k => k.Key, v => v.Value);

结果:

Key Value
A   42
B   42
C   42

每个列表都有唯一的字符串。

如果任何字符串在任何列表中重复,您将得到一个DuplicateKeyException.


推荐阅读