【问题标题】:linq doesn't iterate over listlinq 不会遍历列表
【发布时间】:2012-02-07 09:35:56
【问题描述】:

我写了以下代码

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>

有人有什么想法吗?我是要为列表添加迭代吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 您确定该代码中没有access-to-modified-closure
    • 啊,谢谢,现在已修复,将接受您的回答,因为我的 SelectDAO 不正确。
    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 2023-02-10
    • 2011-12-16
    相关资源
    最近更新 更多