linq不会迭代列表

时间:2012-02-07 09:35:56

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

我写了以下代码

List<Pupils> pupils = PupilsDAO.SelectDAO();
XElement dtpupil = new XElement("DtDatas",
                from xlist in pupils
                orderby xlist.Id
                    select new XElement("DtData",
                        new XElement("ref", xlist.Id),
                        new XElement("forename", xlist.Forename),
                        new XElement("surname", xlist.Surname)
                    )
            );

而不是为列表中的每个元素获取不同的XML对象,我确实得到了列表中每个项目的输出,但它们都是相同的,而不是实际迭代,所以只需加载说..

<DtDatas>
   <DtData>
      <ref>01</ref>
      <forename>joe</forename>
      <surname>bloggs</surname>
   </DtData>
 <DtData>
      <ref>01</ref>
      <forename>joe</forename>
      <surname>bloggs</surname>
   </DtData>
 <DtData>
      <ref>01</ref>
      <forename>joe</forename>
      <surname>bloggs</surname>
   </DtData>
 <DtData>
      <ref>01</ref>
      <forename>joe</forename>
      <surname>bloggs</surname>
   </DtData>
</DtDatas>

有没有人有任何想法?我是不是要为列表添加迭代?

1 个答案:

答案 0 :(得分:5)

您提供的代码很好。这表明列表中的数据不正确。可能的选择:

  • 您多次向列表添加相同的引用,并且只是在构建列表的任何循环中重复地改变相同的对象。
  • 您正在使用静态变量来支持属性

如果您可以发布Pupils课程和SelectDAO方法,我们应该可以提供更多帮助。