仍在学习 Linq 并且在尝试在同一选择中检索和元素以及另一个元素的后代时遇到问题。我搜索了一个解决方案,但找不到我正在寻找的东西并想出了一个解决方案。但这是正确的方法吗?不知何故,虽然它有效,但感觉确实不错。
我有以下 XML 结构:
<Tables>
<Table>
<SourceTable>WrittenRecordsTable</SourceTable>
<Researcher>Fred Blogs</Researcher>
<QuickRef>cwr</QuickRef>
<TableType>WrittenRecords</TableType>
<FieldMapping>
<RecordID>ID</RecordID>
<StartYear>StartYear</StartYear>
<EndYear>EndYear</EndYear>
<LastName>LastName</LastName>
<Title>Title</Title>
<Subject>Subject</Subject>
<Description>Reference</Description>
</FieldMapping>
</Table>
</Tables>
以及以下 Linq to XML:
var nodes = (from n in xml.Descendants("FieldMapping")
select new
{
SourceTable = (string)n.Parent.Element("SourceTable").Value,
RecordID = (string)n.Element("RecordID").Value,
StartYear = (string)n.Element("StartYear").Value,
EndYear = (string)n.Element("EndYear").Value,
LastName = (string)n.Element("LastName").Value,
Title = (string)n.Element("Title").Value,
Subject = (string)n.Element("Subject").Value
}).ToList();
这是我检索SourceTable元素的方式感觉不对。是我担心太多还是有更好的方法?另外,使用 c# 表达式而不是查询更好吗?