背景:我有一个ASP.NET MVC视图页面,在View Model中有一个MultiSelectList。我想用该MultiSelectList对象中的SelectedValues列表填充标签。该列表存储在MultiSelectList内用型IDName的:IEnumerable和字符串数组 - 找到匹配值
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.Name IDName。 ID在SelectedItems列表中。
我对MVC和C#都很新颖,所以我不确定最好的方式来做到这一点。有什么建议么?
更新#2:
好的,我正在密集。这工作:
list.Items
.Cast<IDName>()
.Where(x => list.SelectedValues.Cast<string>().Contains(x.ID.ToString()))
SelectedValues实际上是一个包含字符串[]的IEnumerable。
非常接近!看看我的更新的工作解决方案(这主要是不同的,因为我的第一篇文章中有一个细节错误)。谢谢! – user101306 2009-05-26 00:30:16