0

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); 
4

1 に答える 1

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")、より厳密な一致に置き換えることもお勧めします。これにより、クエリが高速になります。私は文書構造全体を知らないので、あなたに代わってそれを行うことはできません.ElementElements

于 2013-08-20T17:52:43.970 に答える