投稿者 るきお  (社会人) 投稿日時 2021/8/28 11:11:03
LINQを使う例も紹介します。この例を実行するには、先頭の方に Imports System.Data  が記述されており、NuGet で System.Data.Common をインストールしておく必要がある場合があります。

'▼サンプルのDataTable を作成。xid と xname の2列からなるテーブルです。 
Dim table As New Data.DataTable
table.Columns.Add("xid"GetType(Integer))
table.Columns.Add("xname"GetType(String))

table.Rows.Add(1, "徳川家康")
table.Rows.Add(2, "豊臣秀吉")
table.Rows.Add(3, "織田信長")


'■【例2A】Tableを構成する各行(DataRow)のListを作成します。 
Debug.WriteLine("例2A")
Dim theList As List(Of DataRow) = table.AsEnumerable.ToList

'変換結果を確認するために出力ウィンドウに出力 
For Each row As DataRow In theList
    Debug.WriteLine($"{row("xid")} = {row("xname")}")
Next


'■【例2B】xname を持つ List(Of String)に 変換 
Debug.WriteLine("例2B")
Dim xnameList As New List(Of String)(From row In table.AsEnumerable Select CStr(row("xname")))

'変換結果を確認するために出力ウィンドウに出力 
For Each xname As String In xnameList
    Debug.WriteLine(xname)
Next


'■【例2C】xid を持つ List(Of Integer)に 変換 
Debug.WriteLine("例2C")
Dim xidList As New List(Of Integer)(From row In table.AsEnumerable Select CInt(row("xid")))

'変換結果を確認するために出力ウィンドウに出力 
For Each xid As Integer In xidList
    Debug.WriteLine(xid)
Next


'■【例2D】xname と xid を持つ匿名型の List に変換 
Debug.WriteLine("例2D")
Dim modelList = (From row In table.AsEnumerable
                 Select xname = CStr(row("xname")), xid = CInt(row("xid"))).ToList

'変換結果を確認するために出力ウィンドウに出力 
For Each model In modelList
    Debug.WriteLine($"{model.xid} = {model.xname}")
Next