基于动态列可数据化到XML

时间:2015-03-31 08:29:49

标签: c# linq

我正在尝试将数据表转换为XML。 http://www.codeproject.com/Tips/732223/To-Generate-XML-File-from-Datatable-using-LINQ

上面的链接提到了如何为已知列的表执行此操作。当列是动态的时候有没有办法做到这一点(在LINQ中没有硬编码。?

 string s=  new XElement("Employees",
                 from empList in dt.AsEnumerable()
                 orderby empList.Field<decimal>("ESalary") descending
                 select new XElement("Employee",
                      new XAttribute("EmployeeId", empList.Field<Int32>("EID")),
                      new XAttribute("Salary", empList.Field<decimal>("ESalary")),
                      new XElement("EmployeeName", empList.Field<string>("EName")),
                      new XElement("Designation", empList.Field<string>("EDesignation"))
                 )).ToString() 
            }

这里Emp,EmpID,薪水等都是硬编码的。我希望这适用于LINQ中的所有表吗?

我想尝试:

   XElement cust = new XElement("TEST",
        from str in table.AsEnumerable()
        let fields = (from dr in table.Rows.Cast<DataRow>()
                         select dr.ItemArray)
        select new XElement("Client", splitTempalte.Zip(fields, (name, value) => new XElement(name, value)))
    );

如果没有选项,那么我将不得不为每一行使用for循环,在每个列中使用for循环并使用LINQ zip。只是想看看是否有更好的方法然后使用数据表到LINQ(带动态列)。

0 个答案:

没有答案