verwendetes Datenbanksystem: Linq
Hallöchen,
ich versuche mich gerade in Linq einzuarbeiten, unter anderem hänge ich gerade an einer Linq Abfrage. Bin aber auch nicht sicher ob das was ich machen möchte wirklich möglich ist.
Folgende Struktur ist gegeben:
List<Monat>
-> List<Kunde>
-> List<string> Portale
In Monaten sind Kunden enthalten und in den Kunden wiederum die Portale durch die die Kunden gekommen sind. (Hoffe das ist halbwegs verständlich)
Ziel ist es nun, mit Linq eine Liste von Portalen zu erstellen in der jedes Portal nur einmal enthalten ist.
Ist das mit Linq möglich? Wie sähe das aus? Bekomme es nicht ansatzweise hin.
Vielen dank schonmal für jede Hilfestellung
Gruß
Hallo Sythus,
ganz hab ich es nicht verstanden (liegt aber wohl an mir), aber für mich hört sich das nach GroupBy (Portal) und Verbindung mit SelectMany (zum flach machen der Hierarchie) an.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo,
Du sagst ja du brauchst eine "Unique" Liste, daher sieht das für mich nach einem Fall für Distinct()
aus.
Beispiel:
var portal = "portal1";
var kunde1 = new Kunde();
kunde1.Portale.Add(portal);
var kunde2 = new Kunde();
kunde2.Portale.Add(portal);
kunde2.Portale.Add("portal2");
var monat = new Monat();
monat.Kunden.Add(kunde1);
monat.Kunden.Add(kunde2);
var monatList = new List<Monat>();
monatList.Add(monat);
var distinctPortals = monatList.SelectMany(f => f.Kunden.SelectMany(x => x.Portale)).Distinct().ToList();
Unglaublich was damit alles möglich ist 😄 Auf so eine Lösung wäre ich nicht gekommen.
Vielen dank (euch beiden)
Gruß