배경 : 뷰 모델에 MultiSelectList가있는 ASP.NET MVC보기 페이지가 있습니다. 해당 MultiSelectList 개체에서 SelectedValues 목록으로 레이블을 채 웁니다. 이 목록은 idName에는의 유형으로 MultiSelectList 내에 저장됩니다IEnumerable 및 문자열 배열 - 일치하는 값 찾기
public class IDName {
public int ID {get; set;}
public string Name {get; set;}
}
그래서 MultiSelectList.Items이 idName에는의 목록을 포함하는 IEnumerable을합니다. 이 목록에 대해 foreach를 수행하고 .Name을 가져 와서 각 항목의 이름을 가져올 수 있습니다.
["1", "3", "4"]
그래서, 난 그냥 때 IDName.Name idName에는을 얻으려면 다음 ID 문자열 []로 표시되고처럼 보이는, MultiSelectList.SelectedItems에있는 경우에, 나는 단지이 작업을 수행 할 수. ID가 SelectedItems 목록에 있습니다.
저는 MVC와 C# 모두에 대해 매우 익숙해서 그렇게 할 수있는 최선의 방법이 확실하지 않습니다. 어떤 제안?
업데이트 # 2 :
OK, 내가 밀도가되고 있었다. 작동 방식 :
list.Items
.Cast<IDName>()
.Where(x => list.SelectedValues.Cast<string>().Contains(x.ID.ToString()))
SelectedValues는 실제로 문자열 []이 (가) 포함 된 IEnumerable입니다.
아주 가까이! 작업 솔루션에 대한 내 업데이트를 확인하십시오 (첫 번째 게시물에서 세부적인 내용이 잘못되어 주로 다릅니다). 고맙습니다! – user101306