Laden...

Linq Abfrage - unique List erstellen

Erstellt von Sythus vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.051 Views
S
Sythus Themenstarter:in
166 Beiträge seit 2009
vor 12 Jahren
Linq Abfrage - unique List erstellen

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ß

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

S
417 Beiträge seit 2008
vor 12 Jahren

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();
S
Sythus Themenstarter:in
166 Beiträge seit 2009
vor 12 Jahren

Unglaublich was damit alles möglich ist 😄 Auf so eine Lösung wäre ich nicht gekommen.

Vielen dank (euch beiden)

Gruß