Фон: у меня есть страница просмотра ASP.NET MVC с MultiSelectList в модели представления. Я хочу заполнить метку списком SelectedValues из этого объекта MultiSelectList. Список хранится в MultiSelectList с типом IDName:
public class IDName {
public int ID {get; set;}
public string Name {get; set;}
}
Итак, MultiSelectList.Items - это IEnumerable, содержащий список IDName. Я могу сделать foreach над этим списком и взять .Name, чтобы получить имя каждой записи. Но я хочу сделать это, только если идентификатор находится в MultiSelectList.SelectedItems, который выглядит как строка [] и выглядит следующим образом:
["1", "3", "4"]
Итак, я хочу просто получить IDName.Name, когда IDName.ID находится в списке SelectedItems.
Я довольно новичок в MVC и C #, поэтому я не уверен, что это лучший способ сделать это. Есть предложения?
Обновление № 2:
Хорошо, я был плотным. Это работает:
list.Items
.Cast<IDName>()
.Where(x => list.SelectedValues.Cast<string>().Contains(x.ID.ToString()))
SelectedValues на самом деле является IEnumerable, содержащим строку [].