Reputation: 241
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
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
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