创建新的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)名称、…);

创建新的Dictionary<string, IEnumerable<SelectListItem>使用字典键入

试试这个:

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 
                }));