J'essaye de remplir une vue d'arbre basée sur une liste de personnel de divers départements (lstStaff).Refactoriser ce code
public class Staff
{
public int StaffID { get; set; }
public string StaffName { get; set; }
public int DeptID { get; set; }
public string DepartmentName { get; set; }
}
Le résultat devrait ressembler à ceci:
Département A
- John
- Dave
Département B
- Andy
- Leon
J'ai écrit le code suivant. Cependant, je pense que le code devrait être refactorisé plus loin.
RadTreeNode deptNode;
RadTreeNode staffNode;
var departments = (from d in lstStaff
where !string.IsNullOrEmpty(d.DepartmentName)
select new { d.DeptId, d.DepartmentName })
.Distinct();
foreach (var d in departments)
{
//add department node
deptNode = new RadTreeNode()
{
Value = d.DeptId,
Text = d.DepartmentName
};
tvwDepartmentCases.Nodes.Add(deptNode);
//add staff nodes to department node
var staffs = lstStaff
.ToList()
.Where(x => x.DeptId == d.DeptId);
foreach (var s in staffs)
{
staffNode = new RadTreeNode()
{
Value = s.StaffID,
Text = s.StaffName
};
deptNode.Nodes.Add(staffNode);
}
}
Tous les commentaires sont les bienvenus. Merci!
Comment a-t-il été refait? À quelle fin? –
Je pense juste que "Var départements" et la liaison au nœud de l'arbre peuvent être améliorés. – bla
Je suppose que vous voulez dire le personnel de la classe publique. –