LINQ-запрос для группировки результатов в массив - PullRequest
2 голосов
/ 10 октября 2011

Дано:

var detailList = new List<DetailItem>();

Где:

class DetailItem
{
    string A;
    MyType B;
}

Может ли группа запросов LINQ для поля A в следующую структуру данных:

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



IEnumerable<GroupItem> linqQuery = detailList.SomeLinqMagic(…);

Все данные, о которых идет речь, основаны на памяти, так что это вопрос LINQ to Objects.

1 Ответ

9 голосов
/ 10 октября 2011

Это выглядит просто, если я не пропустил ваше значение:

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