8,497
社区成员
发帖
与我相关
我的任务
分享
Public Class Form1
Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
Dim dt1 As New DataTable, dt2 As New DataTable
With dt1.Columns
.Add("id1", GetType(String))
.Add("id2", GetType(String))
.Add("value1", GetType(Double))
End With
With dt2.Columns
.Add("id1", GetType(String))
.Add("id2", GetType(String))
.Add("value2", GetType(Integer))
End With
With dt1.Rows
.Add("p1", "c1", 111)
.Add("p2", "c2", 222)
.Add("p3", "c3", 333)
.Add("p4", "c4", 444)
.Add("p5", "c5", 555)
End With
With dt2.Rows
.Add("p1", "c1", 1)
.Add("p3", "c3", 2)
End With
Dim linqquery =
From t1 In dt1
Join t2 In dt2
On t1.Field(Of String)("id1") Equals t2.Field(Of String)("id1") And
t1.Field(Of String)("id2") Equals t2.Field(Of String)("id2")
Select t1.ItemArray.Concat(t2.ItemArray.Skip(2))
dgv1.DataSource = dt1
dgv2.DataSource = dt2
'dgv3.DataSource = linqquery
With dgv3.Columns
.Add("col1", "campaign")
.Add("col2", "content")
.Add("col5", "value1")
.Add("col6", "value2")
End With
For Each obj In linqquery
dgv3.Rows.Add(obj.ToArray)
Next
End Sub
End Class
Dim linqquery =
From t1 In dt1 Group Join t2 In dt2
On t1!id1 Equals t2!id1 And t1!id2 Equals t2!id2 Into Group
From t3 In Group.DefaultIfEmpty()
Select t1!id1, t1!id2, t1!value1, v2 = If(t3 Is Nothing, 0, t3!value2)
From t1 In dt1
Join t2 In dt2
On t1.Field(Of String)("id1") Equals t2.Field(Of String)("id1") And
t1.Field(Of String)("id2") Equals t2.Field(Of String)("id2") into g
from t2 in g.DefaultIfEmpty()
...