如何解决如何执行LINQ查询并选择?
| 我正在运行以下内容:var abc = new adminModel();
string text = abc.AnswerType.SingleOrDefault(s => s.Value == \"2\");
string text0 = abc.AnswerType.Single(s => s.Value == \"2\").Text;
var text1 = (from a in abc.AnswerType
here a.Value == \"2\"
select a.Text).SingleOrDefault();
AnswerType看起来像这样:
public class adminModel
{
public IEnumerable<SelectListItem> AnswerType
{
get
{
return new[]
{
new SelectListItem { Value = \"1\",Text = \"1 answer\" },new SelectListItem { Value = \"2\",Text = \"2 answers\" },new SelectListItem { Value = \"3\",Text = \"3 answers\" },new SelectListItem { Value = \"4\",Text = \"4 answers\" },new SelectListItem { Value = \"5\",Text = \"5 answers\" },new SelectListItem { Value = \"6\",Text = \"6 answers\" },new SelectListItem { Value = \"7\",Text = \"7 answers\" },};
}
}
}
但是我收到一条错误消息,提示“无法将SelectListItem转换为字符串”。有没有办法我可以从SelectListItem中提取文本?
解决方法
在您的代码中,“ 2”将返回“ 3”实例,而不是“ 4”实例。
如果您需要获取文本,查询将是:
string text = AnswerType.Single(s => s.Value == \"2\").Text;
要么
string text = AnswerType
.Where(s => s.Value == \"2\")
.Select(arg => arg.Text)
.SingleOrDefault();
, 尝试这个:
string text = AnswerType
.Where(s => s.Value == \"2\")
.Select(s=> s.Text)
.SingleOrDefault();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。