|
■No68816 (Pla さん) に返信
LINQを使った例です。
問題なのはIDで重複をチェックとNumberを合計することしか
定義されていないことです。その他の項目はどうするのでしょう?
この例では最初の行を残すようにしてあります。
Private tbl1 As DataTable
Public Sub New()
' この呼び出しはデザイナーで必要です。
InitializeComponent()
' InitializeComponent() 呼び出しの後で初期化を追加します。
tbl1 = New DataTable
With tbl1.Columns
.Add("ID", GetType(String)).DefaultValue = String.Empty
.Add("Col2", GetType(String)).DefaultValue = String.Empty
.Add("Num", GetType(Integer)).DefaultValue = 0
.Add("Check", GetType(Boolean)).DefaultValue = False
End With
DataGridView1.DataSource = tbl1
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim qry = From r In tbl1
Select ID = r.Field(Of String)("ID"), _
Col2 = r.Field(Of String)("Col2"), _
Num = r.Field(Of Integer)("Num"), _
Check = r.Field(Of Boolean)("Check") _
Where Check
Group By ID Into Group, SumNum = Sum(Num) _
Let FItem = Group.First _
Select ID, FItem.Col2, SumNum
DataGridView2.DataSource = qry.ToList
End Sub
|