将匿名类型转换为DataTable最快的方法是什么?
更新: 我想从匿名类型获取并填充 DataTable。如果需要反射,我该如何使用反射来做到这一点?
找到这里:
var result = from p in dataSource
group p by p.City into cities
select new { Property1 = cities.Key, Property2 = cities.Average(p => p.Age) };
dt.Columns.Add("Property1");
dt.Columns.Add("Property2");
foreach (var item in result)
{
dt.Rows.Add(item.Property1,item.Property2);
}
请参阅此处的通用解决方案:Convert generic List/Enumerable to DataTable?
///fill dt1
Dim dt1 As New DataTable dt1 = connection.LoadPoliceData("")
///fll dt2
Dim dt2 As New DataTable dt2 = connection.LoadDataCompare("")
////fill enumerable data(anonymous data) in dt , using linq query
Dim dt As New DataTable
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Mobile", GetType(String))
Dim data1 = (From datarow1 In dt1.AsEnumerable Join datarow2 In dt2.AsEnumerable
On datarow1.Field(Of String)("NameofPerson") Equals datarow2.Field(Of String)("Name") And datarow1.Field(Of String)("Mobile") Equals datarow2.Field(Of String)("MobileNumber")
Select dt.LoadDataRow(New Object() {datarow1.Field(Of String)("NameofPerson"), datarow2.Field(Of String)("MobileNumber")}, False)).Distinct().ToList()
Dim i = dt.Rows.Count
记录在dt(数据表变量)中
///汇总填写数据表一(dt1)
将 dt1 调暗为新数据表
dt1 = 连接.LoadPoliceData("")
///汇总填写数据表一(dt2)
将 dt2 调暗为新数据表
dt2 = 连接.LoadDataCompare("")
/// 摘要声明数据表保存。我想在哪里填充可枚举数据
暗淡另存为新数据表
save.Columns.Add("名称", GetType(String))
save.Columns.Add(“移动”,GetType(字符串))
///总结编写带有 dt1 和 dt2 连接的 linq 查询,以及数据表(保存)
Dim data1 =(来自 dt1.AsEnumerable 中的 datarow1 在 dt2.AsEnumerable 中加入 datarow2 在 datarow1.Field(Of String)("NameofPerson") 等于 datarow2.Field(Of String)("Name") 和 datarow1.Field(Of String)("Mobile") 等于 datarow2.Field(Of String)("MobileNumber ”) 选择 save.LoadDataRow(New Object() {datarow1.Field(Of String)("NameofPerson"), datarow2.Field(Of String)("MobileNumber")}, False)).Distinct().ToList()
///数据表保存汇总计数
Dim i = save.Rows.Count