まじめにLINQはじめました、は、おいといてですね(笑)
悩んだことのメモ。
Array型からArrayList型にする
どっちもデータ配列じゃね?と思う。
Dim oldArray() As String
Dim newArrayList As New ArrayList(oldArray)
というわけで、コンストラクタで渡せる。逆は、ArrayList.ToArray でよさげ。
LINQtoSQLで取ってきたIQueryable型からDataTable型にする
どっちも表題が付けられたデータ要素の集まりじゃね?と思う。
IEnumerlableの場合には、CopyToDatatable をゴリゴリするとできるわけだけれども。
いや、そもそも、根本として、こういうコンバートがいるのかと問われると大人の事情だ、必要な時だってあるさw
で、結論からすると、プログラミングしようぜ、ってことになった。
Public Function ToDataTable(ByVal inQparam As IQueryable) As DataTable
Dim retDT As New DataTable
Dim iQpros = inQparam.ElementType.GetProperties
'受取先カラムの作成
For Each prop In iQpros
retDT.Columns.Add(prop.Name)
Next
'一行ずつINSERT
For Each obj In inQparam
Dim oRow = retDT.NewRow
For Each qItem In iQpros
If Not (qItem.GetValue(obj, Nothing) Is Nothing) Then
oRow(qItem.Name) = qItem.GetValue(obj, Nothing)
End If
Next
retDT.Rows.Add(oRow)
Next
Return retDT
End Function
修行しますw