LINQ查询将结果分组为数组

cam*_*ase 2 c# linq linq-to-objects group-by

鉴于:

var detailList = new List<DetailItem>();
Run Code Online (Sandbox Code Playgroud)

哪里:

class DetailItem
{
    string A;
    MyType B;
}
Run Code Online (Sandbox Code Playgroud)

可以将字段A上的LINQ查询组转换为以下数据结构:

class GroupItem
{
    string A;
    List<MyType> AllBsWithinA;
}



IEnumerable<GroupItem> linqQuery = detailList.SomeLinqMagic(…);
Run Code Online (Sandbox Code Playgroud)

有问题的数据都是基于内存的,因此这是一个LINQ to Objects问题.

Phi*_*lip 10

这看起来很简单,除非我错过了你的意思:

IEnumerable<GroupItem> linqQuery = detailList
    .GroupBy(i => i.A)
    .Select(g => new GroupItem() 
    { 
        A = g.Key, 
        AllBsWithinA = g.Select(i => i.B).ToList() 
    });
Run Code Online (Sandbox Code Playgroud)