Ist es möglich, folgende in eine einfacher lesbare linq oder Lambda-Ausdruck zu konvertieren?C# - Lambda vs verschachtelte Schleifen
Im Wesentlichen ist doc.TierID ein Array (int []) der TierIDs, auf denen sich der Client gerade befindet. Außerdem enthält das Dokumentobjekt ein CommitmentProgram-Objekt, das eine Liste von PriceProgram enthält. Alles, was ich versuche, ist die PriceProgram.ProgramID für jede TierID.
Die Beziehung zwischen PriceProgram und TierID besteht darin, dass jedes PriceProgram eine Liste von Tiers (ProgramTier-Objekt) hat und ProgramTier-Objekt die entsprechende TierID enthält, die wir bereits haben.
Lassen Sie mich wissen, wenn meine Erklärung keinen Sinn ergibt, und ich werde versuchen, es auszuarbeiten.
bearbeiten
Jon, Ich erhalte Der Name 'priceProgram' existiert nicht im aktuellen Kontext Fehler, wenn ich versuche zu kompilieren, was Sie vorgeschlagen haben:
Dictionary<int, int> selectedProgramTierCombo =
(from mainTierID in doc.TierID
from priceProgram in doc.CommitmentProgram.PricingPrograms
**join progTier in priceProgram.Tiers on mainTierID equals progTier.TierID**
select new { priceProgram.ProgramID, progTier.TierID })
.ToDictionary(x => x.ProgramID, x => x.TierID);
Mit dem generischen Typ 'System.Collections.Generic.List' Argument '1' Typ erfordert. –
ja72
Ich habe einen aktualisierten Code basierend auf Jons erster Antwort bereitgestellt. –
Ich habe meine Antwort geändert, um eine andere 'from'-Klausel anstelle der' join' zu verwenden ... obwohl es sich anhört, als ob du dieses Bit überhaupt nicht brauchst. –