Привет, у меня есть список пользователей. Каждый пользователь принадлежит Району.
Что я хочу сделать с этим списком, так это создать из них словарь, в котором Имя области - это Ключ, а значение ключа - это список выбора пользователей в области, в котором текстовое значение имени пользователя и Значение установлено на Идентификатор пользователя.
Мне удалось добиться этого с помощью следующего кода:
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.Name, ...);