在 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>
例如
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>
例如