简体   繁体   English

如何执行 LINQ 查询和 select?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM