我为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;
}
}
}
答案 0 :(得分:0)
你能用吗?它将返回所有元素的列表
List<Element> = db_connection.H_Table.Select(s=>new Element {
ID = s.ID,
NAME =s.NAME
}).ToList();