通过函数

时间:2017-04-20 11:00:05

标签: c# asp.net-mvc

我为List创建了一个类,通过创建一个对象,构造函数应该调用它内部的函数,并递归遍历所有数据库(H_Table / Table)并返回其中包含所有层次结构的List。

如何做到这一点,那么,它是否经历了所有元素,而不仅仅是在通过foreach和if / else语句时重写相同的元素?

 using System.Collections.Generic;
    using System.Linq;
    using System.Web.Mvc;
    using Tree_List.Models;
    using System.Data.Entity;

namespace Tree_List.Controllers
{
    public class ListController : Controller
    {
        // GET: List
        private Models.ListDBEntities1 db_connection = new Models.ListDBEntities1();

        public ActionResult Index()
        {
            var Hierarchy = db_connection.H_Table;
            Element Item = new Element(Hierarchy, null);
            return View(Item);
        }


    }

    public partial class Element
    {
        public int ID { get; set; }
        public string NAME { get; set; }
        public List<Element> CHILDS { get; set; }

        public Element(DbSet<H_Table> Table, int? ParentID)
        {
            PopulateList(Table, ParentID);
        }

        public List<Element> PopulateList (DbSet<H_Table> Table, int? ParentI)
        {
            List<Element> temp = new List<Element>();
            foreach (var root in Table)
            {
                if (root.PARENT_ID == null)
                {
                    ID = root.ID;
                    NAME = root.NAME;
                    foreach (var child in Table)
                    {
                        if (child.PARENT_ID == ID)
                        {
                            ID = child.ID;
                            NAME = child.NAME;
                        }
                    }
                }
            }
            return temp;
        }

    }
}

1 个答案:

答案 0 :(得分:0)

你能用吗?它将返回所有元素的列表

List<Element> = db_connection.H_Table.Select(s=>new Element {
ID = s.ID,
NAME =s.NAME
}).ToList();