I have collection of menu object and each menu object can have multiple child menus and that can also have multiple child menus and so on.
MenuID
MenuName
IsActive
Children
MenuID
MenuName
IsActive
Children
MenuID
MenuName
IsActive
Children
I want to filter only active menus. How to do this?
I Tried with recursive but no luck.
private void FilterDeletedRecord(List<Menu> menus)
{
if (menus != null && menus.Count > 0)
{
foreach (Menu item in menus)
{
if (item.Children != null && item.Children.Count > 0)
{
item.Children = item.Children.Where(x => !x.IsDeleted).ToList();
if (item.Children != null && item.Children.Count > 0)
{
foreach (Menu m in item.Children)
{
if (m.Children != null && m.Children.Count > 0)
{
FilterDeletedRecord(m.Children);
}
}
}
}
}
}
}