我正在寻找一些帮助来构建LINQ查询。我想得到特定数据类型的所有选项卡。我开始构建查询但似乎仍然有一些问题。感谢任何反馈。谢谢杰伊
<DataType name="WELL_INDUSTRY">
<Database key1="key1" key2="" delimeter="">
<Tabs>
<Tab>
<Name>Basic</Name>
var tabs = from tab in doc.Descendants("Tab")
where tab.Parent.Parent.Attribute("Name").ToString() == "WELL_INDUSTRY"
select new
{
Name = tab.Descendants("Name").First().Value
};
foreach (var tab in tabs)
Debug.WriteLine(tab.Name);
答案 0 :(得分:0)
我会说,你是从问题的错误方面开始的。为什么不首先找到<DataType>
,然后选择包含<Tab>
的所有内容?
var tabs = from dt in doc.Descendants("DataType")
where (string)dt.Attribute("Name") == "WELL_INDUSTRY"
from tab in dt.Elements("Database").Elements("Tabs").Elements("Tab")
select new
{
Name = (string)tab.Elements("Name").First()
};
我还建议使用doc.Descendants("DataType")
/ Element
使用正确的元素名称将Elements
替换为更多严格匹配。它将使查询更快。我不能为你做那个,因为我不知道整个文档结构。