首页 > 解决方案 > VB.NET-LINQ 比较两个数据表

问题描述

我有两个数据表(treno1 和 treno2),其中包含 10 列关于团体铁路预订的信息。我需要知道 treno1 中的某些值是否在 treno2 上,并捕获其他值:例如,我需要知道 treno1 中的姓氏是否在 treno2 中并获取其他信息(车号、座位等)

我从网上得到一个 json 预订。

With treno1
    .Columns.Add("Departure", System.Type.GetType("System.String"))
    .Columns.Add("Arrival", System.Type.GetType("System.String"))
    .Columns.Add("PNR", System.Type.GetType("System.String"))
    .Columns.Add("Level", System.Type.GetType("System.String"))
    .Columns.Add("Last Name", System.Type.GetType("System.String"))
    .Columns.Add("Car", System.Type.GetType("System.String"))
    .Columns.Add("seat", System.Type.GetType("System.String"))
    .Columns.Add("first name", System.Type.GetType("System.String"))
    .Columns.Add("Train", System.Type.GetType("System.String"))
    .Columns.Add("ID res", System.Type.GetType("System.String"))
End With


    For Each item As JProperty In data
        item.CreateReader()
    
        For Each msg As JObject In item.Values
            treno1.Rows.Add(msg("departureLocationName"), msg("arrivalLocationName"), msg("pnrCode"), msg("serviceLevel"), msg("lastName"), msg("wagon"), msg("seat"), msg("firstName"), msg("transportMeanName"), msg("Id"))
        Next
    Next`

怎么可能是查询?

Dim LastName = From n In treno1.AsEnumerable() From n1 In treno2.AsEnumerable
                      Where n.Field(Of String)("Last Name") = n1.Field(Of String)("Last Name") And n.Field(Of String)("Last Name") IsNot Nothing And n.Field(Of String)("first name") = n1.Field(Of String)("first name")
                      Select n1.Field(Of String)("Last Name") + " " + n1.Field(Of String)("first name") + " , " + n1.Field(Of String)("PNR") + " , " + n1.Field(Of String)("Departure") + " - " + n1.Field(Of String)("Arrival")    

标签: vb.netlinq

解决方案


推荐阅读