我目前从两组数据中获取两个DataTable,其中用户可以存活两次。示例:
表1:
UserID | DisplayName | FirstName | LastName
1 John Doe John Doe
2 Jane Doe Jane Doe
表2:
UserID | DisplayName
1 John Doe
2 Jane Doe
3 Sally Brown
我希望基于唯一的UserID合并这两个表,并保留最大批次的数据列。因此,我会在合并时保留列UserID
,DisplayName
,FistName
和LastName
。
UserID | DisplayName | FirstName | LastName
1 John Doe John Doe
2 Jane Doe Jane Doe
3 Sally Brown
我已尝试使用table.DefaultView.ToTable(true, {list of columns})
,但这不会在行中正确放入不同的数据,因为表2中的UserID 1和2与表1中的内容相同。
看起来用VB的linq-ing很奇怪,我似乎无法保留列。有什么建议吗?
答案 0 :(得分:0)
我会合并数据表,然后将行标记为UserID
:
table1.Merge(table2)
Dim dtnew = table1.AsEnumerable() _
.GroupBy(Function(d) d.Field(Of Integer)("UserID")) _
.Select(Function(g) g.FirstOrDefault()).CopyToDataTable()