1

XML ファイルを使用して DDL に値を表示したいのですが、LINQ to XML を使用しています。

  <countrys>
  <country>
    <name>India</name>
    <state>
      <text>Maharashtra</text>
      <text>Kashmir</text>
      <text>Goa</text>
    </state>
  </country>
  <country>
    <name>Sri lanka</name>
    <state>
      <text>Kanady</text>
      <text>Colombo</text>
      <text>Galle</text>
    </state>
  </country>
  <country>
    <name> Australia</name>
    <state>
      <text>Sydney</text>
      <text>Perth</text>
      <text>Melbourne</text>
    </state>
  </country>
  <country>
    <name>South Africa</name>
    <state>
      <text>Capetown</text>
      <text>Johanusburg</text>
      <text>Durban</text>
    </state>
  </country>
</countrys>

     public static IEnumerable bindstate()
        {
            var state = from b in getdata().Descendants(("state"))
                        orderby (string) b.Element("text")
                        select (string) b.Element("text");
            return state;

        }

しかし、私はすべての州を取得していません。すべての国で最初の州のみを取得しています。どうすればすべての州を取得できますか?

4

1 に答える 1

1

これに使用できますSelectMany

var state = from b in getdata().Descendants("state")
                               .SelectMany(state => state.Elements("text"))
            orderby (string) b
            select (string) b;

この例では、各要素から要素をSelectMany選択し、それらを1つのシーケンスにフラット化します。"text""state"

于 2012-08-24T09:47:39.023 に答える