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