using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
class Menu
{
public string Name { get; set; }
public List
}
static void Main(string[] args)
{
var menus = new List
{
new Menu(){
Name="Menu1",
SubMenus=new List
new Menu(){
Name="Menu1_1"
},
new Menu(){
Name="Menu1_2"
},
new Menu(){
Name="Menu1_4"
},
new Menu(){
Name="Menu1_3"
},
new Menu(){
Name="Menu1_11"
},
},
},
new Menu(){
Name="Menu2",
SubMenus=new List
new Menu(){
Name="Menu2_1"
},
new Menu(){
Name="Menu2_2"
},
},
},
new Menu(){
Name="Menu4",
SubMenus=new List
new Menu(){
Name="Menu4_2"
},
new Menu(){
Name="Menu4_1"
},
},
},
new Menu(){
Name="Menu3",
SubMenus=new List
new Menu(){
Name="Menu3_1"
},
new Menu(){
Name="Menu3_2"
},
},
},
};
menus=Sort(menus);
Display(menus);
Console.ReadLine();
}
static List
{
foreach (var menu in menus)
{
if (menu.SubMenus != null && menus.Count() > 0)
{
menu.SubMenus = Sort(menu.SubMenus);
}
}
return menus.OrderBy(m => m.Name).ToList();
}
static void Display(List
{
foreach (var menu in menus)
{
Console.WriteLine(menu.Name);
if (menu.SubMenus != null)
{
Display(menu.SubMenus);
}
}
}
}
}