【发布时间】:2016-01-16 20:12:52
【问题描述】:
我有两个List<Dictionary<string, string>>
List<Dictionary<string, string>> ListdicA = new List<Dictionary<string, string>>();
Dictionary<string, string> dic1 = new Dictionary<string, string>();
dic1.Add("Type1", "1");
dic1.Add("Type2", "A");
dic1.Add("Type3", "X");
Dictionary<string, string> dic2 = new Dictionary<string, string>();
dic2.Add("Type1", "2");
dic2.Add("Type2", "B");
dic2.Add("Type3", "Y");
ListdicA.Add(dic1);
ListdicA.Add(dic2);
List<Dictionary<string, string>> ListdicB = new List<Dictionary<string, string>>();
Dictionary<string, string> dic3 = new Dictionary<string, string>();
dic3.Add("Type1", "1");
dic3.Add("Type2", "C");
dic3.Add("Type3", "X");
Dictionary<string, string> dic4 = new Dictionary<string, string>();
dic4.Add("Type1", "2");
dic4.Add("Type2", "D");
dic4.Add("Type3", "Z");
ListdicB.Add(dic3);
ListdicB.Add(dic4);
我想合并这两个列表并按它们的键对值进行分组。结果是List<Dictionary<string, List<string>>>。首先,我想合并两个列表:
Type1 1
Type2 A
Type3 X
Type1 2
Type2 B
Type3 Y
Type1 1
Type2 C
Type3 X
Type1 2
Type2 D
Type3 Z
我想按键分组,结果如下:
Type1 1
Type2 A C
Type3 X X
Type1 2
Type2 B D
Type3 Y Z
【问题讨论】:
-
我不确定我是否理解分组的逻辑条件。您能否修改您的问题以包含有关应如何进行不同分组的详细信息?
-
我想合并两个 List 并按 Type1 @Luc Morin 分组
-
您需要使用外连接来连接两个字典的键,因为您需要包含两个字典的所有键。请参阅以下网页:code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
-
为什么是
X X(而你没有1 1)?
标签: c# linq list dictionary collections