代码求优化
不太会lambda,不知是否有更佳的写法--------------------编程问答-------------------- 你想做什么。根据List<Menu>组成树,以及从树中找到Menu对象? --------------------编程问答-------------------- lamda表达式你那样写没有问题呀,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Menu> totalMenus = new List<Menu> {
new Menu{Id=1,Text="系统",Pid=0},
new Menu{Id=2,Text="用户管理",Pid=1},
new Menu{Id=3,Text="角色管理",Pid=1},
new Menu{Id=4,Text="其他",Pid=0},
new Menu{Id=5,Text="订单管理",Pid=4},
};
Console.ReadKey();
}
private static List<Menu> NewMethod(List<Menu> totalMenus)
{
List<Menu> first = totalMenus.Where(t => t.Pid == 0).ToList();
if (first.Count > 0)
{
foreach (var f in first)
{
NewMethod(totalMenus, f);
}
}
return first;
}
private static void NewMethod(List<Menu> totalMenus, Menu f)
{
List<Menu> second = totalMenus.Where(t => t.Pid == f.Id).ToList();
if (second.Count > 0)
{
f.Children = second;
foreach (var s in second)
{
NewMethod(totalMenus, s);
}
}
}
}
class Menu
{
public int Id { get; set; }
public string Text { get; set; }
public int Pid { get; set; }
public List<Menu> Children { get; set; }
}
}
private static List<Menu> NewMethod(List<Menu> totalMenus)
这个方法里的if语句可以不要,是多余的 --------------------编程问答-------------------- 我是楼主,我是想问,有没有更好的实现方式 --------------------编程问答-------------------- 我遇到这种情况都直接Dictionary,当初看书的时候就见书上说过通过字典类管理键值对效率非常高 --------------------编程问答--------------------
你没有说做什么,我猜测你要做什么,根据我的理解,你现有的代码都是错的,谈何更好。 --------------------编程问答--------------------
那你认为正确的是?
没有想要做什么,只是把一堆数据递归出一个结果集
补充:.NET技术 , ASP.NET