背景:View Modelに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をつかむことができます。しかし、私は唯一のIDが[]の文字列のように見えるとのように見えるMultiSelectList.SelectedItems、である場合にこれをしたい:だから
["1", "3", "4"]
、私はちょうどIDName.NameときIDNameを取得したいです。 IDはSelectedItemsリストにあります。
私はMVCとC#の両方にかなり新しいので、これを実行する最善の方法はわかりません。助言がありますか?
更新#2:
OK、私は密集していました。これは動作します:
list.Items
.Cast<IDName>()
.Where(x => list.SelectedValues.Cast<string>().Contains(x.ID.ToString()))
SelectedValuesは実際には文字列[]を含むIEnumerableです。
非常に近い!実際の解決策(私の最初の投稿に間違っているので主に違いがあります)の私のアップデートをチェックしてください。ありがとうございました! – user101306