【问题标题】:Linq/XML: grouping results properly within XML elementLinq/XML:在 XML 元素中正确分组结果
【发布时间】:2009-08-25 12:49:21
【问题描述】:

好的,我询问了如何将 Linq 查询结果返回为 XML,我得到了答案here

但是有一个小问题:结果在 XML 中没有得到逻辑分组。例如:

XElement xml = new XElement("States",
  from s in MyStates
  from cy in s.Counties
  from c in cy.Cities
  where s.Code == "NY"
  orderby s.Code, cy.Name, c.Name
  select new XElement("State",
    new XAttribute("Code", s.Code),
    new XAttribute("Name", s.Name),
    new XElement("County",
      new XAttribute("Name", cy.Name),
      new XElement("City",
        new XAttribute("Name", c.Name)
      )
    )
  )
);

Console.WriteLine(xml);

输出格式为:

<State Code="NY" Name="New York ">
  <County Name="WYOMING">
    <City Name="WARSAW" />
  </County>
</State>
<State Code="NY" Name="New York ">
  <County Name="WYOMING">
    <City Name="WYOMING" />
  </County>
</State>
<State Code="NY" Name="New York ">
  <County Name="YATES">
    <City Name="BELLONA" />
  </County>
</State>
<State Code="NY" Name="New York ">
  <County Name="YATES">
    <City Name="MIDDLESEX" />
  </County>
</State>
<State Code="NY" Name="New York ">
  <County Name="YATES">
    <City Name="PENN YAN" />
  </County>
</State>
<State Code="NY" Name="New York ">
  <County Name="YATES">
    <City Name="RUSHVILLE" />
  </County>
</State>

代替:

<State Code="NY" Name="New York ">
  <County Name="WYOMING">
    <City Name="WARSAW" />
    <City Name="WYOMING" />
  </County>
  <County Name="YATES">
    <City Name="BELLONA" />
    <City Name="MIDDLESEX" />
    <City Name="PENN YAN" />
    <City Name="RUSHVILLE" />
  </County>
</State>

如何让结果按预期显示?

【问题讨论】:

    标签: c# xml linq linq-to-xml


    【解决方案1】:

    为了得到你想要的结果,我相信你必须嵌套 LINQ to XML 查询。在外部查询中,您必须查询不同的州...然后是内部查询以获取该州的县...然后是另一个内部查询以获取该县的城市。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      相关资源
      最近更新 更多