我的列表结构是: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)
答案 0 :(得分:7)
在您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()
其他//Array for holding the vertices of a hexagon
float [ ] Vertices = {
// Vertex 0
-0.5f , 1.0f , 0.0f ,
// Vertex 1
-1.0f , 0.0f , 0.0f ,
// Vertex 2
-0.5f , -1.0f , 0.0f ,
// Vertex 3
0.5f , -1.0f , 0.0f ,
// Vertex 4
1.0f , 0.0f , 0.0f ,
// Vertex 5
0.5f , 1.0f , 0.0f ,
// Center Vertex ( 6 )
0.0f , 0.0f , 0.0f
};
只是为了便于调试