いまさらな感じは否めませんが,記録として残します。
Public Sub DataTableLinqSelectTest()
'テスト用テーブル作成
Dim dt As New DataTable("TestTable")
With dt.Columns
.Add("Code")
.Add("Name")
.Add("Type")
.Add("Value", Type.GetType("System.Int32"))
End With
Dim nr As DataRow
nr = dt.NewRow
nr("Code") = "001"
nr("Name") = "株式会社テスト工業"
nr("Type") = "製造"
nr("Value") = 100000
dt.Rows.Add(nr)
nr = dt.NewRow
nr("Code") = "002"
nr("Name") = "株式会社テストマテリアルズ"
nr("Type") = "製造"
nr("Value") = 200000
dt.Rows.Add(nr)
nr = dt.NewRow
nr("Code") = "003"
nr("Name") = "株式会社テストシステム"
nr("Type") = "ソフトウェア"
nr("Value") = 150000
dt.Rows.Add(nr)
nr = dt.NewRow
nr("Code") = "004"
nr("Name") = "株式会社テストストア"
nr("Type") = "小売"
nr("Value") = 150000
dt.Rows.Add(nr)
nr = dt.NewRow
nr("Code") = "005"
nr("Name") = "株式会社手須戸インダストリー"
nr("Type") = "製造"
nr("Value") = 250000
dt.Rows.Add(nr)
'Typeが「製造」でNameに「テスト」を含むデータを取得
Dim query = From el In dt.AsEnumerable
Where el("Type") = "製造"
Where el("Name") Like "*テスト*"
Order By el("Code") Ascending
Select el
'データの書き出し
For Each r As DataRow In query
Debug.WriteLine(r("Code") & ": " & r("Name"))
Next
'Valueの合計を取得
Dim valuesum = query.Sum(Function(el) el("Value"))
Debug.WriteLine("Sum: " & valuesum)
End Sub
0 件のコメント:
コメントを投稿