Model 递归

 public class MenuList
    {
        private List<MenuList> children = new List<MenuList>();

       [DataField("departName")]
        public int Id { get; set; }
        public string? Name { get; set; }
        public int PId { get; set; }
        public string? Icon { get; set; }
        public string? Path { get; set; }

        public List<MenuList> Children { get { return children; } set { children = value; } }

    }

  

public List<TalkModel> GetMenuList()
{
    var sql = "select * from s_menu ";
    var dt = db.ExecuteDataTable(sql);
    List<TalkModel> list = new();

    for (int i = 0; i < dt.Rows.Count; i++)
    {
        if (Convert.ToInt32(dt.Rows[i]["pid"]) == 0)
        {
            list.Add(new TalkModel
            {
                Id = Convert.ToInt32(dt.Rows[i]["id"]),
                Name = dt.Rows[i]["name"].ToString(),
                PId = Convert.ToInt32(dt.Rows[i]["pid"]),
                Icon = dt.Rows[i]["icon"].ToString(),
                Path = dt.Rows[i]["path"].ToString()
            });
        }
        else
        {
            list.ForEach(item =>
            {
                if (item.Id == Convert.ToInt32(dt.Rows[i]["pid"]))
                {
                    TalkModel children = new()
                    {
                        Id = Convert.ToInt32(dt.Rows[i]["id"]),
                        Name = dt.Rows[i]["name"].ToString(),
                        PId = Convert.ToInt32(dt.Rows[i]["pid"]),
                        Icon = dt.Rows[i]["icon"].ToString(),
                        Path = dt.Rows[i]["path"].ToString()
                    };
                    item.Children.Add(children);
                }
            });

        }

    }
    return list;
}

  2

 public List<TalkModel> GetReplyComment(string onlycode, int id)
 {
     var sql = $"select * from l_talk where onlycode= '{onlycode}' and remarkId= {id}";
     var res = db.ListOrDefault<TalkModel>(sql);
     var list = res.Where(x => x.PId == 0).ToList();

     BuildTree(list, res);

     return list;
 }

 private static void BuildTree(List<TalkModel> list, List<TalkModel> res)
 {

     foreach (var item in list)
     {
         item.Children = res.Where(x => x.PId == item.Id).ToList();

         BuildTree(item.Children, res);
     }
 }

 

 

model2

row["evaluteNoneStus"] = string.Join(",", dtEvalute.Where(x => x.StuWorkType == 1 || x.StuWorkType == 2).Select(x => x.stuName + "#" + x.markingRealName + "#" + x.UserName + "#" + x.StuWorkState));

  

posted @ 2022-06-30 10:09  贾平凡  阅读(118)  评论(0)    收藏  举报