C# WPF LINQ обратиться к последней ветке группы

138
08 сентября 2019, 00:40

Мне нужно сгрупировать коллекцию по нескольким свойствам, я делаю так:

logs.GroupBy(a => a.A).Select(b => new { 
  Key = b.Key, Items = b.ToList().GroupBy(c => c.B).Select(d => new { 
  Key = d.Key, Items = d.ToList().GroupBy(e => e.C).Select(i => new { 
  Key = i.Key, Items = i.ToList().GroupBy(h => h.D).Select(r => new {
  Key = r.Key, Items = r.ToList()
}).ToList()}).ToList()}).ToList()}).ToList();

и мне кажется что так не очень хорошо делать, есть другие варианты? Дальше мне нужно получить список списков которые в самом конце групирования т.е. r.ToList() как ето сделать?

Answer 1

Параметр D, E, F и т.д.- на ваше усмотрение )

    var list = new[]
    {
        new {A = 1, B = 1, C = 1, Value = "v1"},
        new {A = 1, B = 2, C = 5, Value = "v2"},
        new {A = 2, B = 2, C = 1, Value = "v3"},
        new {A = 2, B = 2, C = 1, Value = "v4"},
        new {A = 2, B = 1, C = 1, Value = "v5"},
        new {A = 2, B = 5, C = 1, Value = "v6"},
        new {A = 2, B = 2, C = 4, Value = "v7"},
        new {A = 3, B = 3, C = 1, Value = "v8"},
        new {A = 3, B = 3, C = 1, Value = "v9"},
        new {A = 3, B = 1, C = 1, Value = "v10"},
        new {A = 3, B = 1, C = 1, Value = "v11"},
        new {A = 4, B = 2, C = 1, Value = "v12"},
        new {A = 4, B = 2, C = 1, Value = "v13"},
        new {A = 4, B = 1, C = 1, Value = "v14"},
    }
    .GroupBy(it => new {a = it.A, b = it.B, c = it.C})
    .Select(gr => new
    {
        key = $"A{gr.Key.a}-B{gr.Key.b}-C{gr.Key.c}",
        items = gr.ToList()
    })
    .ToList();
READ ALSO
Переход между 2d и 3d в unity

Переход между 2d и 3d в unity

я пишу простенькую игру на Unity и работаю в 2d измерении, но я хотел бы реализовать переход между 2d и 3d: Игрок в 2d режиме входит в портал и резко...

98
Нужна помощь с TabControl

Нужна помощь с TabControl

Всех привествую, появился вопросНе могу при нажатии кнопки Clear не стираются позиции чексбоксов и текстовых полей

145
Zebra LP 2824 и печать через COM

Zebra LP 2824 и печать через COM

Некоторое время назад написал программу для печати на самоклеящихся этикетках для Zebra-образных принтеров

114
Windows Forms и System.Threading.Timer [дубликат]

Windows Forms и System.Threading.Timer [дубликат]

На данный вопрос уже ответили:

128