使用Linq选择不同的UserID和更长的条目

时间:2015-09-23 20:54:43

标签: vb.net linq datatable

我目前从两组数据中获取两个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合并这两个表,并保留最大批次的数据列。因此,我会在合并时保留列UserIDDisplayNameFistNameLastName

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很奇怪,我似乎无法保留列。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我会合并数据表,然后将行标记为UserID

table1.Merge(table2)

Dim dtnew = table1.AsEnumerable() _
    .GroupBy(Function(d) d.Field(Of Integer)("UserID")) _
    .Select(Function(g) g.FirstOrDefault()).CopyToDataTable()