我正在尝试将数据表转换为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(带动态列)。