DOBON.NETプログラミング道掲示板
(現在 過去ログ3 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33936 / inTopicNo.1)  List(of T)の抽出方法
  
□投稿者/ だんご 一般人(12回)-(2018/07/26(Thu) 10:28:01)
  • アイコン環境/言語:[VB.net] 
    分類:[.NET] 

    Formにボタン2つとDataGridView1つを貼り付けています。
    下記のコードで、Buttom2を押すと、Codeが200のレコードのみDataGridViewに
    表示したいと考えていますが、方法が判りません。ループで一列づつ確認するしか方法がないのでしょうか?
    ご指導頂ければ幸いに存じます。宜しくお願い致します。

    Public Class Form1
    Dim myList As New List(Of Test)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    '全てのListの表示
    DataGridView1.DataSource = myList
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Extraction("200")
    End Sub
    Sub Extraction(Code As String)
    'Code=200のレコードのみ表示
    DataGridView1.DataSource = "????"
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    myList.Add(New Test With {.Code = "100", .Name = "岡田"})
    myList.Add(New Test With {.Code = "200", .Name = "山田"})
    myList.Add(New Test With {.Code = "300", .Name = "小林"})
    End Sub
    End Class

    Class Test
    Public Property Code As String
    Get
    Return _Code
    End Get
    Friend Set(value As String)
    _Code = value
    End Set
    End Property
    Public Property Name As String
    Get
    Return _Name
    End Get
    Friend Set(value As String)
    _Name = value
    End Set
    End Property
    Private _Code As String
    Private _Name As String
    End Class

引用返信 削除キー/
■33937 / inTopicNo.2)  Re[1]: List(of T)の抽出方法
□投稿者/ 魔界の仮面弁士 大御所(1134回)-(2018/07/26(Thu) 12:04:25)
  • アイコンNo33936に返信(だんごさんの記事)

    > ループで一列づつ確認するしか方法がないのでしょうか?
    LINQ の出番。

    DataGridView1.DataSource = (From r In myList Where r.Code = "200").ToList()
引用返信 削除キー/
■33938 / inTopicNo.3)  Re[2]: List(of T)の抽出方法
□投稿者/ だんご 一般人(13回)-(2018/07/26(Thu) 13:05:34)
  • アイコン魔界の仮面弁士さんいつもありがとうございます。

    教えて頂いたコードを入れたらできました。
    前回
    Nomalアイコン DataTableにSQLを実行できますか?
    └#33897 [作成:07/03(Tue) 20:15]
    で、教えて頂いたLINQですが、その後、あまり勉強が進んでいません。

    有益なのは理解したのですが、ネットなり、書籍なりで勉強すると、
    新しい概念が次々と出てきて・・・
    勉強することがあまりにも多すぎて・・って感じです。

    頑張ります。
    有難うございました。
解決み!
引用返信 削除キー/
■33940 / inTopicNo.4)  Re[3]: List(of T)の抽出方法
□投稿者/ 魔界の仮面弁士 大御所(1136回)-(2018/07/26(Thu) 14:20:36)
  • アイコン
    No33938に返信(だんごさんの記事)
    > 前回
    > Nomalアイコン DataTableにSQLを実行できますか?
    > └#33897 [作成:07/03(Tue) 20:15]
    > で、教えて頂いたLINQですが、その後、あまり勉強が進んでいません。
    
    DataTable で実装してみた場合:
    
    Public Class Form1
        Private myTable As DataTable
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            myTable = New DataTable()
            myTable.Columns.Add("Code", GetType(String))
            myTable.Columns.Add("Name", GetType(String))
            myTable.Rows.Add("100", "岡田")
            myTable.Rows.Add("200", "山田")
            myTable.Rows.Add("300", "小林")
            BindingSource1.DataSource = myTable
            DataGridView1.DataSource = BindingSource1
        End Sub
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            BindingSource1.Filter = ""
        End Sub
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            BindingSource1.Filter = "Code='200'"
        End Sub
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            'DataTable を List(Of Test) に変換する例
            Dim myList As List(Of Test) = myTable.AsEnumerable().Select(
                Function(r) New Test() With {
                    .Code = r.Field(Of String)("Code"),
                    .Name = r.Field(Of String)("Name")
                }).ToList()
        End Sub
    End Class
    
    Public Class Test
        Public Property Code As String
        Public Property Name As String
    End Class

解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -