C# 将3个词典合并为一个词典 我有以下几点 字典1有3个条目 “A”=“1.1” “B”=“2.1” “C”=“3.1” 字典2有3个条目 “A”=“1.2” “B”=“2.2” “C”=“3.2” 字典2有3个条目 “A”=“1.3” “B”=“2.3” “C”=“3.3” 我想要一份字典类型的期末口述 “A”=“1.1,1.2,1.3” “B”=“2.1,2.2,2.3” “C”=“3.1,3.2,3.3”

C# 将3个词典合并为一个词典 我有以下几点 字典1有3个条目 “A”=“1.1” “B”=“2.1” “C”=“3.1” 字典2有3个条目 “A”=“1.2” “B”=“2.2” “C”=“3.2” 字典2有3个条目 “A”=“1.3” “B”=“2.3” “C”=“3.3” 我想要一份字典类型的期末口述 “A”=“1.1,1.2,1.3” “B”=“2.1,2.2,2.3” “C”=“3.1,3.2,3.3”,c#,generics,dictionary,merge,C#,Generics,Dictionary,Merge,假设所有按键都相同,最远的前进方向是: I have the following Dictionary<string,string> dict1 has 3 items "A"="1.1" "B"="2.1" "C"="3.1" Dictionary<string,string> dict2 has 3 items "A"="1.2" "B"="2.2" "C"="3.2" Dictionary<string,string> dict2 has 3 i

假设所有按键都相同,最远的前进方向是:

I have the following 

Dictionary<string,string> dict1 has 3 items
"A"="1.1"
"B"="2.1"
"C"="3.1"

Dictionary<string,string> dict2 has 3 items
"A"="1.2"
"B"="2.2"
"C"="3.2"

Dictionary<string,string> dict2 has 3 items
"A"="1.3"
"B"="2.3"
"C"="3.3"

I want a final Dict dictFinal which is of type Dictionary<string,string[]>

"A"="1.1,1.2,1.3"
"B"="2.1,2.2,2.3"
"C"="3.1,3.2,3.3"
字典结果=新建字典();
foreach(dict1.Keys中的var键)
{
结果[key]=新字符串[]{dict1[key],dict2[key],dict3[key]};
}

假设所有3个字典都有相同的键,则应执行以下操作:

Dictionary<string,string[]> result = new Dictionary<string,string[]>();
foreach(var key in dict1.Keys)
{
    result[key] = new string[]{dict1[key], dict2[key], dict3[key]}; 
}
var d1=新字典()
{
{“A”,“1.1”},
{“B”,“2.1”},
{“C”,“3.1”}
};
var d2=新字典()
{
{“A”,“1.2”},
{“B”,“2.2”},
{“C”,“3.2”}
};
var d3=新字典()
{
{“A”,“1.3”},
{“B”,“2.3”},
{“C”,“3.3”}
};
var result=d1.Keys.ToDictionary(k=>k,v=>new[]{d1[v],d2[v],d3[v]});

给定类似的键,提供所有字典的集合,并使用
SelectMany
处理动态数量的数组项:

var d1 = new Dictionary<string, string>()
             {
                 {"A", "1.1"},
                 {"B", "2.1"},
                 {"C", "3.1"}
             };
var d2 = new Dictionary<string, string>()
             {
                 {"A", "1.2"},
                 {"B", "2.2"},
                 {"C", "3.2"}
             };

var d3 = new Dictionary<string, string>()
             {
                 {"A", "1.3"},
                 {"B", "2.3"},
                 {"C", "3.3"}
             };

var result = d1.Keys.ToDictionary(k => k, v => new[] {d1[v], d2[v], d3[v]});

字典
类型可以是一个
列表
而不一定是如上所述的数组。重要的是将它们组合在一个集合中,以便对它们进行LINQ。

如果我的数组是动态的,我如何在运行时添加新的d(x)[v]@chugh97:请参阅我对处理动态数组的响应。
var dictionaries = new[] { dict1, dict2, dict3 };
var result = dictionaries.SelectMany(dict => dict)
                         .GroupBy(o => o.Key)
                         .ToDictionary(g => g.Key,
                                       g => g.Select(o => o.Value).ToArray());