创建新的Dictionary使用字典键入
本文关键字:字典 SelectListItem IEnumerable Dictionary string 创建 | 更新日期: 2023-09-27 18:07:13
嗨,我有一个用户列表。每个用户属于一个区域。
我想用这个列表做的是创建一个字典,其中区域名称是键,键的值是区域内用户的selectList,其中用户名的文本值和用户Id的值。
我使用以下代码实现了这一点:
var StaffByArea = new Dictionary<string, IEnumerable<SelectListItem>>();
foreach(var area in areas)) {
var personList = new List<SelectListItem>();
foreach (var person in staff.Where(c => c.AreaId == area.Id)) {
personList.Add(new SelectLis
tItem { Value = person.AreaId.ToString(), Text = person.Username });
}
StaffByArea.Add(area.Name, personList);
}
因此,对于每个可能的区域,我都在寻找相关的工作人员并将它们添加到选择列表中。一旦我添加了该地区的所有人,我就以地区名称为键将选择列表添加到字典中。
我一直在想这可能更容易做到与ToDictionary()
有人知道怎么做吗?
我只看到了:
StaffByArea = Users。ToDictionary(x => x. area)名称、…);
试试这个:
var StaffByArea
= areas.ToDictionary(
a => a.Name,
a => staff
.Where(c => c.AreaId == area.Id)
.Select(c => new SelectListItem
{
Value = c.AreaId.ToString(),
Text = c.Username
}));