public static List <Artikel> Zufallsartikel(List <Kontakt> Kontakte) { Random tmpRandom = new Random(DateTime.Now.Millisecond); List <Artikel> tmpArtikelliste = new List <Artikel>(); string[] tmpArtikelstamm = { "DVD|Das Leben des Brian|1-234", "DVD|Abgefahren - Mit Vollgas in die Liebe|2-134", "DVD|Das Vermächstnis der Tempelritter|3-123", "DVD|Was diese Frau so alles treibt|9-646", "DVD|Mitten ins Herz|3-534", "DVD|Der Teufel trägt Prada|4-324", "DVD|Desperate Housewives - Staffel 2, Erster Teil|9-423", "DVD|O.C., California - Die komplette zweite Staffel (7 DVDs)|5-554", "DVD|24 - Season 6 [UK Import - Damn It!]|2-424", "Bücher, EDV|Visual Basic 2005 - Das Entwicklerbuch|3-537", "Bücher, EDV|Visual Basic 2008 - Das Entwicklerbuch|5-506", "Bücher, EDV|Visual Basic 2008 - Neue Technologien - Crashkurs|5-518", "Bücher, EDV|Microsoft Visual C# 2005 - Das Entwicklerbuch|3-543", "Bücher, EDV|Programmieren mit dem .NET Compact Framework|5-401", "Bücher, EDV|Microsoft SQL Server 2008 - Einführung in Konfiguration, Administration, Programmierung|5-513", "Hörbuch|Harry Potter und die Heiligtümer des Todes| 4-444", "Hörbuch|Die Rache der Zwerge|2-321", "Hörbuch|Die Wächter|9-009" , "Hörbuch|Das Herz der Hölle|7-321", "Bücher, Belletristik|Die Tore der Welt|9-445", "Bücher, Belletristik|Die Kathredale des Meeres|5-436", "Bücher, Belletristik|The Da Vinci Code|4-444", "Bücher, Belletristik|Der Schwarm|3-333", "Bücher, Belletristik|Tod und Teufel|6-666" }; Artikel tmpArtikel; //Jeder hat was gekauft! :-) foreach (var adrItem in Kontakte) { //Jeder hat zwischen einem und 20 Artikel gekauft for (var anzahlGekaufterArtikel = 1; anzahlGekaufterArtikel <= tmpRandom.Next(1, 20); anzahlGekaufterArtikel++) { tmpArtikel = new Artikel(); object[] tmpStr = tmpArtikelstamm[tmpRandom.Next(0, tmpArtikelstamm.Count - 1)].Split('|'); tmpArtikel.IDGekauftVon = adrItem.ID; tmpArtikel.ArtikelName = tmpStr(1); tmpArtikel.ArtikelNummer = tmpStr(2); tmpArtikel.Anzahl = tmpRandom.Next(1, 4); tmpArtikel.Einzelpreis = (@in)((tmpRandom.Next(1, 20) * 5) - 0.05); tmpArtikel.Kategorie = tmpStr(0); tmpArtikelliste.Add(tmpArtikel); } } return(tmpArtikelliste); }
static public void Main() { var adrListe = Kontakt.ZufallsKontakte(10); var artListe = Artikel.Zufallsartikel(adrListe); var adrListeGruppiert = (from adrElement in adrListe join artElement in artListe on adrElement.ID equals artElement.IDGekauftVon select new { adrElement.ID, adrElement.Nachname, adrElement.Vorname, adrElement.PLZ, artElement.ArtikelNummer, artElement.ArtikelName, artElement.Anzahl, artElement.Einzelpreis, Postenpreis = artElement.Anzahl * artElement.Einzelpreis }). OrderBy(o => o.Nachname).ThenBy(o1 => o1.ArtikelNummer). Where(w => ((w.PLZ == "0") && (w.PLZ == "50000"))). GroupBy(g => new { g.ID, g.Nachname, g.Vorname }). Select(s => new { ID = s.Key.ID, Nachname = s.Key.Nachname, Vorname = s.Key.Vorname, Artikelliste = s.ToArray(), AnzahlArtikel = s.Count(), Gesamtpreis = s.Sum(p => p.Postenpreis) }); foreach (var KundenItem in adrListeGruppiert) { Console.WriteLine(KundenItem.ID.ToString() + ": " + KundenItem.Nachname + ", " + KundenItem.Vorname + " - " + KundenItem.AnzahlArtikel + " Artikel zu insgesamt " + KundenItem.Gesamtpreis + " Euro"); Console.WriteLine(" Details:"); foreach (var ArtItem in KundenItem.Artikelliste) { Console.WriteLine(" " + ArtItem.ArtikelNummer + ": " + ArtItem.ArtikelName + "(" + ArtItem.Anzahl + " Stück für insgesamt " + (ArtItem.Einzelpreis * ArtItem.Anzahl).ToString("#,##0.00") + " Euro)"); } } Console.ReadKey(); }