Madhuri Lad
Madhuri Lad

Reputation: 241

Parameter to lambda expression query

public void display()
{
    var Charts = chartGroup.Descendants("charts").Elements("chart")
        .Where(x => x.Attribute("id").Value == "4")
        .Select(x => x.Attribute("name").Value).ToList();
}

I had written following lambda expression. As of now this works fine. But I want to set search value as user parameter ..something like

public void display(int userid)
{
    var Charts = chartGroup.Descendants("charts").Elements("chart")
        .Where(x => x.Attribute("id").Value == userid)
        .Select(x => x.Attribute("name").Value).ToList();
}

But it gives error. Please help out how to solve this?

Upvotes: 2

Views: 89

Answers (2)

Sid
Sid

Reputation: 317

Search pattern has to be string but you are passing as int. So convert it ToString() .

 var Charts = 
            chartGroup.Descendants("charts").Elements("chart").
            Where(x => x.Attribute("id").Value == userid.ToString()).
            Select(x => x.Attribute("name").Value).ToList();

Upvotes: 0

King King
King King

Reputation: 63317

Comparing an int and a string makes no sense:

public void display(int userid) {
 var Charts = chartGroup.Descendants("charts")
                        .Elements("chart")
                        .Where(x =>  x.Attribute("id").Value == userid.ToString())
                        .Select(x => x.Attribute("name").Value).ToList();
}

Upvotes: 1

Related Questions