嘗試組合多個子串列集合并附加到單個父串列,所有子串列都有一個與父 ID 相同的 ID。
List<Department> DepartmentList
List<Student> StudentList
List<Professor> ProfessorList
class ParentVM
{
public List<Department> DepartmentList;
}
class Department
{
public int Id { get; set; }
Public List<Student> StudentList
Public List<Professor> ProfessorList
}
class student
{
public int Id { get; set; }
Public int DepartmentId { get; set; }
public int StudentName { get; set; }
}
class professor
{
public int Id { get; set; }
Public int DepartmentId { get; set; }
public int ProfessorName { get; set; }
}
我有以下查詢將父母附加到孩子:
var departmentQuery =
from dpt in DepartmentList
join stu in StudentList on dpt.Id equals stu.DepartmentId
group StudentList by DepartmentId;
foreach(var grp in departmentQuery) {
grp.Key.StudentList = grp.ToList();
}
使用上面的查詢我將不得不再次重復上面的查詢為 ProfessorList 并再次重復 foreach 回圈以將教授串列附加到部門集合,但是我如何撰寫查詢以使用一個查詢和一個 foreach 回圈將所有孩子附加到它的父母。
uj5u.com熱心網友回復:
簡單地瀏覽每個 Department 物件并分配其子串列:
foreach (var dept in DepartmentList) {
dept.StudentList = StudentList.Where(s => s.DepartmentId == dept.Id).ToList();
dept.ProfessorList = ProfessorList.Where(p => p.DepartmentId == dept.Id).ToList();
}
uj5u.com熱心網友回復:
我假設該Parent物件有一個物件串列,Child并且該Child物件有一個ParentId與父母的Id.
class Parent
{
public int Id { get; set; }
public List<Child> Children { get; set; }
}
class Child
{
public int Id { get; set; }
public int ParentId { get; set; }
}
可以使用以下方法從多個串列中分配所有相應的子項:
parentList = parentList.Select(
parent => new Parent
{
Id = parent.Id,
Children = childList1.Union(childList2.Union(childList3))
.Where(child => child.ParentId == parent.Id)
.ToList()
}
).ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422292.html
標籤:
下一篇:在Linq中將null替換為空
