//将一个平行数据,整理为一个树形数据
private void Test1(List<myType> allTypeList)
{
//查找父节点
List<myType> rootType = allTypeList.Where(o => o.ParentId == -1).ToList();
//递归主函数
Action<myType> addChildType = null;
addChildType
= (typeInfo =>
{
var childInfo = allTypeList.Where(o => o.ParentId == typeInfo.id);
if (childInfo.IsNullOrDbNull())
return;
childInfo.All(
o =>
{
typeInfo.ChildTypes.Add(o);
addChildType(o);
return true;
});
});
//递归调用
allTypeList.ForEach(
o =>
{
addChildType(o);
});
}
使用 C# lamda 表达式写的两种递归函数
精选 转载下一篇:MVC 异常过滤器
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C#之方法递归
问:什么是方法递归?答:方法自己调用自己。
java c# 开发语言 字段 i++ -
C# 递归产生树
非递归绑定3级别
子节点 父节点 i++ sql 数据 -
.net递归方法 c#递归怎么写
C#递归的简单实例
.net递归方法 System Linq Threading