1

再び私です:D

私はLINQを学んでいますが、やりたいことがあり、できなかったことがあります。Linq以外の他の解決策を提案しないでください。ありがとう。

    Dim dtSong As DataTable = New DataTable("Songs")
    dtSong.Columns.Add("ID", GetType(Guid))
    dtSong.Columns.Add("Name", GetType(String))
    dtSong.Columns.Add("Type", GetType(String))
    dtSong.Columns.Add("AlbumID", GetType(Guid))

    Dim dtAlbum As DataTable = New DataTable("Album")
    dtAlbum.Columns.Add("ID", GetType(Guid))
    dtAlbum.Columns.Add("Name", GetType(String))

    Dim idsong, idalbum As Guid
    idalbum = Guid.NewGuid()
    dtAlbum.Rows.Add(idalbum, "Best of")

    idsong = Guid.NewGuid()
    dtSong.Rows.Add(idsong, "You are my sunshine", "Pop", idalbum)
    idsong = Guid.NewGuid()
    dtSong.Rows.Add(idsong, "twinkle twinkle", "Pop", idalbum)
    idsong = Guid.NewGuid()
    dtSong.Rows.Add(idsong, "you are my heart", "Rock", idalbum)        


    Dim query = From x In dtSong Join y In dtAlbum
                On x.Field(Of Guid)("AlbumID") Equals
                y.Field(Of Guid)("ID")
                Where (x.Field(Of String)("Type") = "Pop")
                Select New With
                     {
                        .Name = x.Field(Of String)("Name"),
                        .Type = x.Field(Of String)("Type"),
                        .Album = y.Field(Of String)("Name")
                    }

    Dim dtnew As DataTable = query.CopyToDataTable

LINQクエリに何か問題があると思います。このクエリでCopyToDataTableを使用することは許可されていません。For Eachループを使用して結果を出力することはできますが、新しいDataTableが必要です。助けてくれてありがとう。英語が下手でごめんなさい。

L

4

0 に答える 0