0
'language'プロパティを持つ子ノードをトラバースしてselectlistを動的に作成したいと考えています。したがって、以前に追加されていない場合にのみ、このプロパティ値を選択リスト項目として追加する必要があります。剃刀に存在しない場合にのみ選択リストに項目を追加してください
次のコードがあります。
@{
var litem = new List<SelectListItem>();
litem.Insert(0, new SelectListItem { Selected = true, Text = "All", Value = "" });
foreach (var i in Model.Content.Children.Where("Visible"))
{
//if (i.GetProperty("language").Value != "")
if (i.GetProperty("language").Value != "")
{
string langstr = i.GetProperty("language").Value.ToString();
SelectListItem item = new SelectListItem { Selected = false, Text = langstr, Value = langstr };
if ((!(litem.Contains(item))))
{
litem.Add(item);
}
}
}
var slang=new SelectList(litem);
@Html.DropDownList("drpLang", @slang, new { @class = "dropdown"})
}
ただし、リストにある同じ項目を確認することはできません。何がうまくいかないのですか?
ありがとう....私は含まれているを使用していた。しかし、それはcontains()で動作しませんでしたか? – ghetal
同じオブジェクトの外観を含み、新しいオブジェクト(他のハッシュを含む)をすべて作成するため、リストからオブジェクトを取得した場合にのみ機能しますcontains var item = litem.firstordefault(i = i.Value = 'some value' ) アイテムに「新規」キーワードを使用すると、他のハッシュコードを持つ他のオブジェクト –
が分かりやすくなりました – ghetal