在 c# 中交叉连接两个列表后将数据合并到单个字典中

Merge data into single Dictionary after cross join of two list in c#

我有两个字典列表,我正在应用 LINQ 查询来获得交叉连接。

var result= list1.SelectMany(x=> list2,(x,y)=> new {x,y});

现在结果有所有记录,但 x 和 y 都是分开的,但我希望两个字典都在一行中,没有 x 和 y,而且表中的字典是动态的,所以它可能有任何键和值。

提前致谢!

也许您的意思是您希望输出“行”是包含所有 x 和所有 y 的单个字典。它可能是这样的:

var result= list1.SelectMany(
  x=> list2,
  (x,y) => new Dictionary<WhateverType,YouHave>(x.Concat(Y))
);

它获取 x 和 y 中的所有 KeyValuePair<WhateverTypr,YouHave> 并从中生成一个 IEnumerable<KeyValuePair<WhateverType,YouHave>>,然后生成一个包含所有这些键值对的新字典

字典的类型需要保持一致;你不能让 x 是 Dictionary<string,int> 而 y 是 Dictionary<int,string> 例如