我有一个 xml 文档,其中包含以下格式的 3 个元素:
<Codes>
<Code>
<CodeScenario>3</CodeScenario>
<CodeScenario>4</CodeScenario>
<CodeScenario>6</CodeScenario>
<CodeScenario>7</CodeScenario>
<CodeCategory>Category3</CodeCategory>
<CodeID>043</CodeID>
<CodeDescription>Description3</CodeDescription>
<CodeType>PE</CodeType>
</Code>
<Code>
<CodeCategory>Category2</CodeCategory>
<CodeID>046</CodeID>
<CodeDescription>Description2</CodeDescription>
<CodeType>PE</CodeType>
</Code>
<Code>
<CodeScenario>2</CodeScenario>
<CodeCategory>Category1</CodeCategory>
<CodeID>100</CodeID>
<CodeDescription>Description1</CodeDescription>
<CodeType>PR</CodeType>
</Code>
</Codes>
我希望能够使用 linq 查询来告诉我代码元素是否具有基于 ID 的代码类型。到目前为止,这是我想出的。它有效,但它很丑陋,如果可能的话,我更喜欢使用点表示法。有人可以帮帮我吗?
public bool HasCodeType(string CodeType, string Code)
{
var QueryResult = (from descendant in XMLdocument.Descendants("Code")
from type in descendant.Elements("CodeType")
where type != null &&
type.Value.Equals(CodeType)
select new { CID = descendant.Element("CodeID").Value }).Distinct();
foreach (var result in QueryResult)
{
if (Code == result.CID)
return true;
}
return false;
}