我的列表结构是: List<KeyValuePair<string, List<int>>
以下KeyValue对列表
Key Values
[PageA] [1, 3, 4]
[PageA] [1, 3, 5]
[PageA] [1, 3, 4, 5, 6]
[PageB] [1, 3, 4, 6]
[PageC] [1, 3, 4]
[PageC] [1, 3, 4, 5, 7]
问:如何合并相同键的所有值,还删除重复项,如下所示。
[PageA] [1, 3, 4, 5, 6]
[PageB] [1, 3, 4, 6]
[PageC] [1, 3, 4, 5, 7]
我试图先将它们分组,然后再将它们分组,但是我无法将它们进一步合并为单个键。
var pages = pageData.GroupBy(p => p.Key)
在按您分组之后,您Key
应该SelectMany
用来合并从不同记录中获得的所有集合。这样做后,您可以致电Distinct
。
var result = pageData.GroupBy(item => item.Key)
.Select(group => new
{
Key = group.Key,
Values = group.SelectMany(item => item.Value).Distinct().ToList()
}).ToList();
附加的.ToList()
s在那里可以简化调试
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句