使用LINQ在C#中构建级联列表
我需要显示部门和子部门的列表。 我正在正确加载部门列表。
这时,我有:
var deparmentList = Departments.LoadList(); var departments = new List( from department in departmentList select new ListItem { Text = department.Name, Value = department.Id.ToString(), IsSelected = department.IsActive } );
我现在需要加载子部门列表。 每个子部门都有Id
, DepartmentId
和Name
。 但是,我只想让与所选部门相关联的子部门。 目前,我有以下内容:
var subDepartmentList = SubDepartment.LoadList(); var subdepartments = new List( from subdepartment in subDepartmentList // where ? select new ListItem { Text = subdepartment.Name, Value = subdepartment.Id.ToString(), IsSelected = false } );
我不确定如何在两者之间进行连接或过滤。 我如何在LINQ中执行此操作?
var selectedDepartmentSubDepartments = from dep in departments join subDep in subDepartmentList on dep.Value equals subDep.Id.ToString() where dep.IsSelected select new ListItem { Text = subDep.Name, Value = subDep.Id.ToString(), IsSelected = false }; var subdepartments = new List(selectedDepartmentSubDepartments);
您可以添加一个where
子句来检查是否存在至少一个关联和“选定”部门:
上述就是C#学习教程:使用LINQ在C#中构建级联列表分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var subDepartmentList = SubDepartment.LoadList(); var subdepartments = new List( from subdepartment in subDepartmentList where departments.Any(x => x.IsSelected && x.Value == subdepartment.DepartmentId.ToString()) select new ListItem { Text = subdepartment.Name, Value = subdepartment.Id.ToString(), IsSelected = false } );
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/955871.html