如何使用Linq到Xml获取单个XElement对象?

Mr.*_*aus 3 .net c# linq-to-xml

我想使用Linq to Xml通过属性名从.xml文件中获取单个XElement,类似于在下面通过Id检索Linq to Sql中的单个对象:

var singleDog = context.Dogs.Single(p => p.Id == int.Parse(Id));
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Jon*_*eet 7

绝对.只需使用以下内容:

xdoc.Descendants()
    .Where(x => x.HasAttribute("id") && x.Attribute("id")==id)
    .Single();
Run Code Online (Sandbox Code Playgroud)

无可否认,可能有一种更有效的方法.