2016-08-26 5 views
0

У меня есть List<SelectListItem>, который держит кампусы и каждый SelectListItem.Text этого имя университетского городка и SelectListItem.Value является кампус идентификатором.Как обновить SelectListItem Selected значения внутри списка <T>

Тогда у меня есть List<string>, который содержит некоторые кампусы.

Мне нужно установить Selected свойства SelectListItem в true для всех кампусов, которые соответствуют кампусу идентификатор здесь List<string>

Моего код ниже работает только тогда, когда существует только один идентификатор в List<string>

List<SelectListItem> CampusesList = ... 
... 
List<string> campuses = GetCampusesIds(id); 
foreach (string campus in campuses) { 
    CampusesList.ForEach(x => { x.Selected = x.Value == campus; }); 
} 

Как я могу это решить?

Благодаря

+0

'CampusesList.ForEach (х => x.Selected = campuses.Contains (x.Value))' вместо цикла Еогеасп вы получили –

+0

, который работает, спасибо – esausilva

+0

Реальный вопрос, почему ты хотел бы установить свойство «Selected». Если вы правильно сгенерировали представление, используя '@ Html.ListBoxFor(), тогда нет смысла, так как свойство' Selected' игнорируется (внутри метода строит собственный 'IEnumerable ') –

ответ

0

Вы можете использовать List.Contains Method (T) вернуть истину, если конкретное значение в этом списке.

CampusesList.ForEach(x => x.Selected = campuses.Contains(x.Value)); 
+0

работает отлично, спасибо! – esausilva