Ich habe zwei beobachtbare Sammlungen. 1.TruckItems
2.TruckItemsComparison
. Beide sind genau gleich.Vergleichen von zwei Collections Daten miteinander
Ich lade Daten in die erste TruckItems
Sammlung von EF6, dann 10 Sekunden später lade ich Daten in die zweite Sammlung TruckItemsComparison
. Nun wurden die neuen Daten, die in meiner zweiten Sammlung hinzugefügt wurden, möglicherweise in letzter Zeit von einer anderen Quelle aktualisiert, und ich muss nur die neuesten Daten hinzufügen, die in meiner ersten Sammlung noch nicht vorhanden sind.
Ich möchte überprüfen, ob eine der IDs aus meiner zweiten Sammlung nicht mit den IDs in meiner ersten Sammlung übereinstimmt und dann nur die Elemente, die nicht übereinstimmen.
Code:
Hier ist, wo ich meine Daten laden:
private async void LoadTrucks()
{
using (TruckServiceClient service = new TruckServiceClient())
{
var items = await service.GetTrucksAsync();
if (TruckItems.Count == 0)
{
foreach (var item in items)
{
TruckItems.Add(new TruckItems
{
TruckId = item.TruckId,
TruckQuoteId = item.QuoteId,
TruckPhaseId = item.CurrentPhaseId,
TruckChassisManufacturer = item.ChassisManufacturer,
TruckChassisModel = item.ChassisModel,
TruckStatus = item.Status,
TruckJobNumber = item.JobNumbers,
TruckAddedBy = item.AddedBy,
TruckClientName = item.ClientName,
TruckClientSurname = item.ClientSurname,
TruckClientDetail = item.ClientDetail,
TruckCurrentPhase = item.CurrentPhase
});
}
}
foreach (var item in items)
{
TruckItemsComparison.Add(new TruckItems
{
TruckId = item.TruckId,
TruckQuoteId = item.QuoteId,
TruckPhaseId = item.CurrentPhaseId,
TruckChassisManufacturer = item.ChassisManufacturer,
TruckChassisModel = item.ChassisModel,
TruckStatus = item.Status,
TruckJobNumber = item.JobNumbers,
TruckAddedBy = item.AddedBy,
TruckClientName = item.ClientName,
TruckClientSurname = item.ClientSurname,
TruckClientDetail = item.ClientDetail,
TruckCurrentPhase = item.CurrentPhase
});
}
}
}
Und hier ist, wo ich meine zwei Sammlungen vergleichen möchten:
public void UpdateTrucks()
{
LoadTrucks();
if (TruckItems.Count != 0)
{
var truckItemsId = TruckItems.Where(x => x.TruckId != 0).First().TruckId;
foreach (var item in TruckItemsComparison.Where(x => x.TruckId != truckItemsId))
{
TruckItems.Add(item);
}
}
}
Mein Problem ist, dass es fügt die Daten aus den beiden Sammlungen zusammen, unabhängig davon, ob die IDs übereinstimmen oder nicht. Offensichtlich funktioniert meine Logik hier nicht, also kann mir bitte jemand einen Weg zeigen, wie ich die Daten vergleichen kann und nur IDs einfügen, die in meiner TruckItems
Sammlung noch nicht existieren. Danke und bitte lassen Sie mich wissen, wenn Sie any weitere Informationen benötigen.
Wie bist du so schlau? : P Vielen Dank, Mann! Die zweite Methode hat perfekt funktioniert. – CareTaker22