using System;
using System.Linq;
using System.Xml.Linq;
//XML:
//<goods>
// <good id="1">chair</good>
// <good id="2">table</good>
//</goods>
var goods = new XElement("goods",
new XElement("good", "chair",
new XAttribute("id", 1)),
new XElement("good", "table",
new XAttribute("id", 2)));
//getting an element with the id = 1 attribute
//first method
var value1 = goods
.Elements().Single(e => {
var attr = e.Attribute("id");
return attr != null && attr.Value == "1";
}).Value;
//value1 is "chair"
//second method
var value2 =
(from e in goods.Elements()
let attr = e.Attribute("id")
where attr != null && attr.Value == "1"
select e)
.Single().Value;
//value2 is "chair"
Console.WriteLine(value1);
Console.WriteLine(value2);