-4

私は現在VB.NETに取り組んでいます。2つのリストがあるという問題で立ち往生しています。リストにはさまざまなオブジェクトタイプがあります。ただし、両方のリストに1つの共通のプロパティが含まれています。これが私がそれらのリストについて与えることができる例です。

1)ドライバーリスト

ID     DriverName    DriverCity
1          A         Chicago
2          B         San Jose
3          C         New York

2)トレーラーリスト

ID       TrailerName
1            A
2            B
3            C
4            D
5            E
6            F

ここで、ドライバーを含むすべてのトレーラーIDを含む新しいリストが必要です(例A)。両方のリストを比較して、不足しているアイテムを最終的なリストに追加したいと思います。

4

1 に答える 1

0

データベースをまったく使用していないため、dbmsでそれを実行できないと仮定します。また、IDプロパティが共通のプロパティであり、ドライバーなしですべてのトレーラーを検索したい場合(IDによる)。

Enumerable.Exceptセットの違いを見つけ、Join元のトレーラーオブジェクトを取得するために使用できます。

Dim trailerIDs = From t In trailers Select t.ID
Dim driverIDs = From d In drivers Select d.ID
Dim trailersWithoutDriverIDs = trailerIDs.Except(driverIDs)
Dim trailersWithoutDriver = From t In trailers 
                            Join id In trailersWithoutDriverIDs On t.ID Equals id
                            Select t
' now add missing drivers '
For Each trailer In trailersWithoutDriver 
    Dim driver = new Driver()
    driver.ID = trailer.ID
    driver.DriverName = trailer.TrailerName
    ' which city?? '
    drivers.Add(driver)
Next trailer
于 2012-09-14T22:01:16.093 に答える