Как сделать каскадную IGrouping? - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь выполнить каскадное группирование, но не могу найти способ получить правильный индекс в конце ( .ElementAt (0) в конце кода неверен(на всех 3 уровнях иерархии).

        //Level
        //---|Category
        //---|---|Family
        //---|---|---|Type
        //---|---|---|---|Leaf

            var leafs = queryLeafs.ToList();

            foreach (var leaf in leafs)
            {
                //Get Type
                var leafAttr = leaf.ObjectsEav.First(eav => eav.Attribute.Name == "parent");
                long typeId = leafAttr.Value.Value;
                leaf.Type = universe.First(o => o.Id == typeId);

                //Family
                var typeAttr = leaf.Type.ObjectsEav.First(eav => eav.Attribute.Name == "parent");
                long familyId = typeAttr.Value.Value;

                leaf.Family = universe.First(o => o.Id == familyId);

                //Category
                var familyAttr = leaf.Family.ObjectsEav.First(eav => eav.Attribute.Name == "parent");
                long categoryId = familyAttr.Value.Value;
                leaf.Category = universe.First(o => o.Id == categoryId);

            }

            var groupType = leafs.GroupBy(leaf => leaf.Type);
            var groupFamily = groupType.GroupBy(t => **t.ElementAt(0)**.Family);
            var groupCategory = groupFamily.GroupBy(f => **f.ElementAt(0).ElementAt(0)**.Category);

Может ли кто-нибудь обеспечить свет на моем темном пути? Если у вас есть предложения по улучшению этого вопроса, я был бы признателен всем сердцем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...