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选择元素并将它们展平为一个序列。"text""state"

于 2012-08-24T09:47:39.023 回答