如何用C# 将linq 转成datatable
使用以下代码可以将Linq查询结果转换为DataTable:
// 定义一个Linq查询
var query = from p in products
join c in categories on p.CategoryID equals c.CategoryID
select new
{
ProductName = p.ProductName,
CategoryName = c.CategoryName,
Price = p.Price
};
// 创建一个新的DataTable
DataTable dataTable = new DataTable();
// 获取查询结果的属性
var properties = query.First().GetType().GetProperties();
// 添加列到DataTable
foreach (var property in properties)
{
dataTable.Columns.Add(property.Name, property.PropertyType);
}
// 添加行到DataTable
foreach (var item in query)
{
var row = dataTable.NewRow();
foreach (var property in properties)
{
row[property.Name] = property.GetValue(item, null);
}
dataTable.Rows.Add(row);
}
其中,products和categories是两个数据源,可以替换成你自己的数据源。查询结果的属性通过GetType().GetProperties()获取,然后添加到DataTable的列中。最后,遍历查询结果,将每个对象转换为DataRow,然后添加到DataTable中
原文地址: http://www.cveoy.top/t/topic/dHBW 著作权归作者所有。请勿转载和采集!