linq如何正确GroupBy

时间:2013-05-27 11:48:10

标签: c# linq

我有以下课程:

class AssembledDTO
{
    int pid,
    int blockId,
    List<string> references
}

我试图按照以下方式对所有内容进行分组:

AssembledParts.GroupBy(entry => new
                        {
                            entry.PID,
                            entry.BlockId
                        }).
                        Select( (key , val)=> new AssembledDTO
                            {
                                BlockId = key.Key.BlockId,
                                PID = key.Key.PID,
                                References = val.
                            }) 

References我希望得到我分组的每个组中添加的所有references的列表。

我怎么能这样做?我想念的是什么?

1 个答案:

答案 0 :(得分:2)

SelectMany应该采取措施来平息结果。

AssembledParts.GroupBy(entry => new
                    {
                        entry.PID,
                        entry.BlockId
                    }).
                    Select(key => new AssembledDTO
                        {
                            BlockId = key.Key.BlockId,
                            PID = key.Key.PID,
                            References = key.SelectMany(v => v.references).ToList();
                        })