using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
///
/// 转为树形结构
///
namespace Nirvana.Common
{
public class ToTree where T:IToTreeModel
{
public static List ToDo(List models)
{
var dtoMap = new Dictionary();
foreach (var item in models)
{
dtoMap.Add(item.Id, item);
}
List result = new List();
foreach (var item in dtoMap.Values)
{
if (item.ParentId == 0)
{
result.Add(item);
}
else
{
if (dtoMap.ContainsKey(item.ParentId))
{
dtoMap[item.ParentId].AddChilrden(item);
}
}
}
return result;
}
}
public interface IToTreeModel
{
int Id { get; set; }
int ParentId { get; set; }
public string Name { get; set; }
List treeList { get; set; }
void AddChilrden(IToTreeModel node);
}
public class ShowMessageUpdatesViewModel : IToTreeModel
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
public int status { get; set; }
public List treeList { get; set; }
public void AddChilrden(IToTreeModel node)
{
if (treeList == null)
treeList = new List();
this.treeList.Add(node);
}
}
}