背景:我在视图模型中有一个带有 MultiSelectList 的 ASP.NET MVC 视图页面。我想用 MultiSelectList 对象中的 SelectedValues 列表填充标签。该列表以 IDName 类型存储在 MultiSelectList 中:
public class IDName {
public int ID {get; set;}
public string Name {get; set;}
}
所以 MultiSelectList.Items 是一个包含 IDName 列表的 IEnumerable。我可以在这个列表上做一个 foreach 并抓取 .Name 来获取每个条目的名称。但是,如果 ID 在 MultiSelectList.SelectedItems 中,我只想这样做,它看起来是一个字符串 [],看起来像:
["1", "3", "4"]
所以,当 IDName.ID 在 SelectedItems 列表中时,我只想获取 IDName.Name。
我对 MVC 和 C# 都很陌生,所以我不确定最好的方法。有什么建议么?
更新#2:
好的,我很密集。这有效:
list.Items
.Cast<IDName>()
.Where(x => list.SelectedValues.Cast<string>().Contains(x.ID.ToString()))
SelectedValues 实际上是一个包含 string[] 的 IEnumerable。