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"
4
A
回答
3
鉴于类似的按键,提供所有词典的收集和使用SelectMany
处理数组项目动态数:
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());
dictionaries
类型可能是List<T>
不一定是上面的数组。重要的是你将它们集合在一个集合中,以便LINQ通过它们。
0
假设所有具有相同的键最straigt前进的方向是:
Dictionary<string,string[]> result = new Dictionary<string,string[]>();
foreach(var key in dict1.Keys)
{
result[key] = new string[]{dict1[key], dict2[key], dict3[key]};
}
1
假设所有3个词典按键相同,下面应该做的工作:
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]});
相关问题
- 1. 合并字典的词典
- 2. 合并多个词典成单个字典
- 3. 拆分字典词典进入
- 4. 合并两个词典
- 5. 合并两个词典进入观察的集合 - C#
- 6. 结合词典的两个词典(Python)
- 7. 如何合并两个词典与Python中的字典?
- 8. Python 3词典中的字典
- 9. 字典词典
- 10. 字典词典
- 11. 合并字典词典的所有按键,并创造新的字典
- 12. 字典合并
- 13. 合并字典
- 14. 合并字典
- 15. 字典合并
- 16. 阵列型词典合并
- 17. 在python中合并词典
- 18. 合并词典列表
- 19. 合并嵌套词典
- 20. 合并词典数组
- 21. 仅将python字典列表的值合并为单个字典
- 22. 合并几个Python字典
- 23. 合并两个字典
- 24. C#合并2个字典
- 25. 合并两个字典
- 26. 比较两个词典的关键字/值,并将其放入新词典
- 27. 合并两个词典的键
- 28. objective-c合并两个词典数组
- 29. 字典中合并词典及增加值
- 30. Marklogic值词典和单词词典
如果我的数组是动态的,如何在运行时添加新的d(x)[v] ...! – chugh97 2010-11-02 15:47:47
@ chugh97:看看我的处理动态数组的响应。 – 2010-11-02 15:59:41