[英]How can I perform a LINQ Query and select?
I am running the following:我正在运行以下内容:
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();
Where AnswerType looks like this: 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" },
};
}
}
}
But I am getting an error message saying that "Can't convert SelectListItem to string".但我收到一条错误消息,提示“无法将 SelectListItem 转换为字符串”。 Is there a way that I can just extract the Text from the SelectListItem?
有没有办法可以从 SelectListItem 中提取文本?
In your code AnswerType.SingleOrDefault(s => s.Value == "2")
will return SelectedListItem
instance, not a string
.在您的代码
AnswerType.SingleOrDefault(s => s.Value == "2")
将返回SelectedListItem
实例,而不是string
。
If you need to get text the query would be:如果您需要获取文本,则查询将是:
string text = AnswerType.Single(s => s.Value == "2").Text;
or或者
string text = AnswerType
.Where(s => s.Value == "2")
.Select(arg => arg.Text)
.SingleOrDefault();
Try this:尝试这个:
string text = AnswerType
.Where(s => s.Value == "2")
.Select(s=> s.Text)
.SingleOrDefault();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.