В моем проекте есть древовидное меню.
Данные выглядят следующим образом
{ParentId = null, Id = 10, Name "a"},
{ParentId = null, Id = 33, Name "aa"},
{ParentId = 10 , Id = 11, Name "aaa"},
{ParentId = 10, Id = 12, Name "aaaa"},
{ParentId = 11, Id = 13, Name "aaaaa"},
{ParentId = 56 ,Id = 14, Name "aas"},
{ParentId = 78 , Id = 15, Name "adss"},
{ParentId = 99 , Id = 16, Name "ader"}
Я создал иерархический список для хранения данных
public class NavBarItem
{
public int? Id { get; set; }
public int? ParentId { get; set; }
public string Name{get;set;}
public IEnumerable Children { get; set; }
public int ChildCount { get; set; }
public int HierarchyLevel { get; set; }
}
И мой рекурсивный метод получит данные из таблицы и привяжет их к иерархическому списку
Что я такое Здесь мы пытаемся получить общее количество детей/внуков для каждого родителя.
Например, у родителя A есть дочерний элемент B, а у ребенка B есть дочерние элементы C и D, тогда общее количество ChildCount для A должно быть 3, B должно быть 2, а C должно быть 0
Кроме того, я хотел получить уровень иерархии для каждого родителя.
В приведенном выше примере: у родителя A есть дочерний элемент B, а у B есть другой дочерний элемент. Таким образом, для родителя A уровень иерархии равен 2, для B он должен быть 1, а для C он должен быть 0.
Пример, если я беру элемент с Id = 10, он имеет иерархию два (количество дочерних уровней)
{ParentId = 10 , Id = 11, Name "aaa"},
{ParentId = 11, Id = 13, Name "aaaaa"},
Есть ли лучший или простой способ получить этот ChildCount, а также уровень иерархии.
Пример общего количества детей:
Input is Id = 10
total childs = 3.
Текущий подход:
RecursiveMethod(List)
{
for each through the list and find the count
call the RecursiveMethod again
}
Подробнее здесь: https://stackoverflow.com/questions/618 ... der-a-hier
Как найти общее количество дочерних элементов и количество дочерних уровней в родительском иерархическом списке в С# ⇐ C#
Место общения программистов C#
1710414808
Гость
В моем проекте есть древовидное меню.
Данные выглядят следующим образом
{ParentId = null, Id = 10, Name "a"},
{ParentId = null, Id = 33, Name "aa"},
{ParentId = 10 , Id = 11, Name "aaa"},
{ParentId = 10, Id = 12, Name "aaaa"},
{ParentId = 11, Id = 13, Name "aaaaa"},
{ParentId = 56 ,Id = 14, Name "aas"},
{ParentId = 78 , Id = 15, Name "adss"},
{ParentId = 99 , Id = 16, Name "ader"}
Я создал иерархический список для хранения данных
public class NavBarItem
{
public int? Id { get; set; }
public int? ParentId { get; set; }
public string Name{get;set;}
public IEnumerable Children { get; set; }
public int ChildCount { get; set; }
public int HierarchyLevel { get; set; }
}
И мой рекурсивный метод получит данные из таблицы и привяжет их к иерархическому списку
Что я такое Здесь мы пытаемся получить общее количество детей/внуков для каждого родителя.
Например, у родителя A есть дочерний элемент B, а у ребенка B есть дочерние элементы C и D, тогда общее количество ChildCount для A должно быть 3, B должно быть 2, а C должно быть 0
Кроме того, я хотел получить уровень иерархии для каждого родителя.
В приведенном выше примере: у родителя A есть дочерний элемент B, а у B есть другой дочерний элемент. Таким образом, для родителя A уровень иерархии равен 2, для B он должен быть 1, а для C он должен быть 0.
Пример, если я беру элемент с Id = 10, он имеет иерархию два (количество дочерних уровней)
{ParentId = 10 , Id = 11, Name "aaa"},
{ParentId = 11, Id = 13, Name "aaaaa"},
Есть ли лучший или простой способ получить этот ChildCount, а также уровень иерархии.
Пример общего количества детей:
Input is Id = 10
total childs = 3.
Текущий подход:
RecursiveMethod(List)
{
for each through the list and find the count
call the RecursiveMethod again
}
Подробнее здесь: [url]https://stackoverflow.com/questions/61817793/how-to-find-total-number-of-childs-and-number-of-grand-child-levels-under-a-hier[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия