ValueTupleのListをDataGridViewに表示

タグの編集
投稿者 mayopee  (社会人) 投稿日時 2020/3/26 19:06:27
環境:VB2017、Net4.7.2

ValueTupleのListをDataGridViewに表示できないでしょうか?
Listを作成する時、名前でアクセスできて一々クラスや構造体を作成しなくてもよい
ValueTupleをよく使用します。
これをDataGridViewに表示したい事が多々あるのですが、結局その度にカスタムクラスを
作って表示しています。
ValueTupleのListをDataGridViewに、そのまま表示することはできませんか?

 Dim list As List(Of (V1 As Integer, V2 As String)) =
            Enumerable.Range(65, 10).Select(Function(x) ValueTuple.Create(x, New String(Chr(x), 3))).ToList
        DataGridView1.DataSource = list
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/3/26 22:06:21
ValueTuple 構造体のメンバーは「プロパティ」ではなく「フィールド」なので、データバインドには向きません。

バインドするのであれば、Tuple クラス、匿名型、明示的な自作クラス、DataTable 等を使用しましょう。
DataGridView1.DataSource = list.Select(Function(p) New With {Key p.V1, Key p.V2}).ToArray()
投稿者 mayopee  (社会人) 投稿日時 2020/3/26 22:55:51
魔界の仮面弁士様、ありがとうございます。

匿名型に変換して表示すれば良かったのですね。
解決です。どうも、ありがとうございました。