How to execute LINQ query and choose?

I run 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 is as follows:

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 get an error: "Unable to convert SelectListItem to string." Is there a way that I can just extract text from SelectListItem?

+3
source share
2 answers

An AnswerType.SingleOrDefault(s => s.Value == "2")instance will be returned in your code SelectedListItem, not string.

If you need to get the text, the query will look like this:

string text = AnswerType.Single(s => s.Value == "2").Text;

or

string text = AnswerType
    .Where(s => s.Value == "2")
    .Select(arg => arg.Text)
    .SingleOrDefault();
+2
source

Try the following:

string text = AnswerType
        .Where(s => s.Value == "2")
        .Select(s=> s.Text)
        .SingleOrDefault();
+1
source

All Articles