如何在每次通过 LINQ 查询迭代后创建和追加多列列表

本文关键字:创建 追加 列表 迭代 查询 LINQ | 更新日期: 2023-09-27 17:56:00

我正在尝试创建一个列表(我不需要查看列表,临时列表很好),它将有 3 列。当前按下按钮 1,按钮 1.内容存储在列表框 1 中。然后按下按钮 2,并将按钮 2.内容发送到同一个列表框 1。这些按钮有很多,因此此操作可能会发生多次。
在 ListBox1 具有这些按钮(单列)中的内容后,我按 ExportButton,该按钮将 ListBox1 的内容发送到生成列表的 LINQ 查询。

public void SelectPropertyInfo(string Content)
    {
        using (Context con = new Context())
        {
           var query =
                     from o in con.O_TABLEs
                     join p in con.P_TABLEs on o.PN equals p.PN
                     where p.PZ == Content
                     select new
                     {
                         customerFirstName = o.CustomerFirstName,
                         customerLastName = o.CustomerLastName,
                         propertyAddress = p.PropertyAddress
                      };

此时,我正在将此数据发送到XML文件。

XElement PropertyList =
                new XElement("customers",
                            (from q in query.ToList()
                             select new XElement("customer",
                             new XElement("CustomerFirstName", q.customerFirstName),
                             new XElement("CustomerLastName", q.customerLastName),
                             new XElement("Address", q.propertyAddress))));
PropertyList.Save("S:/customers.xml");
       }
}

只要我从 ListBox1 发送一行,这一切都很好用,但是如果我发送多行,最后一个查询会覆盖所有以前的数据,这是有道理的。我不知道如何在每次通过 LINQ 查询迭代后存储数据。我知道我需要在发送 ListBox1 中的每一行后存储数据,然后在发送 ListBox1 中的所有行后,我想将数据发送到 XML 文件。我认为实现此目的的另一种方法是创建一种方法,我可以在其中从 LINQ 查询发送数据,但我仍然不知道每次运行 LINQ 查询时如何存储数据。

public void CreateXMLList (string CustomerFirstName, string CustomerLastName, string  PropertyAddress)           
       {
         XElement PropertyList = new XElement("customers",
                                 new XElement("CustomerFirstName", CustomerFirstName),
                                 new XElement("CustomerLastName", CustomerLastName),
                                 new XElement("Address", PropertyAddress));
            PropertyList.Save("S:/customers.xml");
       }

我希望对此事有任何帮助或见解。

如何在每次通过 LINQ 查询迭代后创建和追加多列列表

显然,如果要在 XML 文件中存储多个客户,则需要在 XML 文件中存储多个客户,而不仅仅是一个客户。

列表框行的循环之外创建PropertyList,使其包含一个名为 Customers 的元素,然后在每个列表框行迭代中向其添加一个Customer元素(每个列表框行一个元素)。

然后,在循环结束后,将 XML 保存到文件。

另请注意,在当前代码中,您将一个客户存储在名为 customers 的元素中。这令人困惑。