从c#SelectList中获取文本项

Ste*_*e A 9 c# asp.net-mvc razor

使用Visual Studio Express 2012 for Web和Razor,我创建了一个选择列表:

List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem { Text = "Yes", Value = "1" });
list.Add(new SelectListItem { Text = "No", Value =  "2" });

SelectList selectList = new SelectList(list, "Value", "Text", null);
Run Code Online (Sandbox Code Playgroud)

后来,我想获得与selectList中的特定元素相关联的文本.作为一个新手,我想我能做到这一点:

selectList.Items[1].Text
Run Code Online (Sandbox Code Playgroud)

但是这会导致消息"无法将带有[]的索引应用于'System.Collections.IEnumerable'类型的表达式"

谢谢.

Fra*_*sco 16

你可以试试:

selectList.Skip(1).First().Text;
Run Code Online (Sandbox Code Playgroud)

要么:

selectList.Where(p => p.Value == "2").First().Text;
Run Code Online (Sandbox Code Playgroud)

  • 无需同时使用 *.Where(a =&gt; b)* 和 *.First()*。只需使用 *.First(a =&gt; b)* 代替,其工作方式完全相同。 (2认同)

Jam*_*mes 5

您可以将其转换List为可以访问索引器的权限

selectList.Items.ToList()[1].Text
Run Code Online (Sandbox Code Playgroud)