C# 使用LINQ获取多个节点值
假设您有以下XML结构C# 使用LINQ获取多个节点值,c#,.net,linq,C#,.net,Linq,假设您有以下XML结构 <Class> <Students> <Student> <StudentNo>555</StudentNo> <Firstname>Joe</Firstname> <Lastname>Smith</Lastname> </Student> <Student> &
<Class>
<Students>
<Student>
<StudentNo>555</StudentNo>
<Firstname>Joe</Firstname>
<Lastname>Smith</Lastname>
</Student>
<Student>
<StudentNo>222</StudentNo>
<Firstname>Smith</Firstname>
<Lastname>Joe</Lastname>
</Student>
<Students>
</Class>
但我怎样才能得到姓氏呢 您可以使用匿名类型执行此操作:
var query=data.Descendants("Student")
.Select(s=> new { FirstName=s.Element("FirstName").Value,
LastName=s.Element("Lastname").Value});
或者,您可以创建自定义类并保存结果:
var query=data.Descendants("Student")
.Select(s=> new Student{ FirstName=s.Element("FirstName").Value,
LastName=s.Element("Lastname").Value});
你可以这样写:
var firstnames = data.Descendants("Student").Select(x => x.Firstname);
var lastnames = data.Descendants("Student").Select(x => x.Lastname);
或
您的示例XML有许多错误,为了让人们更容易回答您的问题,您应该发布一个工作示例。
var firstnames = data.Descendants("Student").Select(x => x.Firstname);
var lastnames = data.Descendants("Student").Select(x => x.Lastname);
var firstAndLastnames = data.Descendants("Student").Select(x => new { Firstname = x.Firstname, Lastname = x.Lastname });