using System.Data; using System.Security.Cryptography; namespace ContainerBeispiel2 { internal class Program { static void Main(string[] args) { //string daten = "123; Hammer, Dübel, Nägel\n223; Fischfutter, Sand, Schlauch\n434; Pfanne, Gabel\n001; Apfel, Flasche, Tisch\n727; Laptop, Kabel, Tapete"; //string[] datensätze = daten.Split('\n'); //string[] Schlüssel = new string[datensätze.Length]; //string[] Werte = new string[datensätze.Length]; //for (int i = 0; i < datensätze.Length - 1; i++) //{ // Schlüssel[i] = datensätze[i].Split(";")[0]; // Werte[i] = datensätze[i].Split(";")[1]; //} //Dictionary> kundennummerZuWare = new Dictionary>(); //for (int i = 0; i < Schlüssel.Length - 1; i++) //{ // string[] einzelneWerte = Werte[i].Split(","); // kundennummerZuWare.Add(Schlüssel[i], einzelneWerte.ToList()); //} ////alle produkte in einer neuen liste sammeln //List produkte = new List(); //foreach (var item in kundennummerZuWare) //{ // foreach (var item2 in item.Value) // { // produkte.Add(item2); // } //} ////doppelte werte entfernen //List eindeutigeProdukte = new List(); //foreach (var item in produkte) //{ // if (!eindeutigeProdukte.Contains(item)) // { // eindeutigeProdukte.Add(item); // } //} ////alle keys in einer neuen liste sammeln //List keys = new List(); //foreach (var item in kundennummerZuWare) //{ // keys.Add(item.Key); //} ////doppelte werte etfernen //List eindeutigeKeys = new List(); //foreach (var item in keys) //{ // if (!eindeutigeKeys.Contains(item)) // { // eindeutigeKeys.Add(item); // } //} ////ausgabe //Dictionary> wareZuKundennummer = new Dictionary>(); //foreach (var item in eindeutigeKeys) //{ // wareZuKundennummer.Add(item, new List()); // foreach (var item2 in kundennummerZuWare) // { // foreach (var item3 in item2.Value) // { // if (wareZuKundennummer.ContainsKey(item3)) // { // wareZuKundennummer[item3].Add(item2.Key); // //wareZuKundennummer.Add(item3, item2.Key); // } // } // } //} //Datenbeschaffung = Beispielexemplar einer formatierung Datei string daten = "123; Hammer, Dübel, Nägel\n223; Fischfutter, Sand, Schlauch\n434; Pfanne, Gabel\n001; Apfel, Flasche, Tisch\n727; Laptop, Kabel, Tapete"; string[] datensätze = daten.Split('\n'); string[] Schlüssel = new string[datensätze.Length]; string[] Werte = new string[datensätze.Length]; for (int i = 0; i < datensätze.Length - 1; i++) { Schlüssel[i] = datensätze[i].Split(";")[0]; Werte[i] = datensätze[i].Split(";")[1]; } Console.WriteLine("Dictronary> erstellen und füllen"); Dictionary> kundennummerZuWare = new Dictionary>(); for (int i = 0; i < Schlüssel.Length - 1; i++) { string[] einzelneWerte = Werte[i].Split(","); kundennummerZuWare.Add(Schlüssel[i], einzelneWerte.ToList()); } foreach (var item in kundennummerZuWare) { Console.WriteLine(item.Key); foreach (var item2 in item.Value) { Console.WriteLine("-" + item2); } } Console.WriteLine("------------------------------------------------------------------------------"); List schlüsselliste = new List(); foreach (var item in kundennummerZuWare) { foreach (var ware in item.Value) { if (!schlüsselliste.Contains(ware)) { schlüsselliste.Add(ware); } } } Console.WriteLine("Prüfen ob die Schlüsseliste eindeutig ist"); foreach (var item in schlüsselliste) { Console.WriteLine(item); } Dictionary> wareZuKundenNummer = new Dictionary>(); foreach (var item in schlüsselliste) { wareZuKundenNummer.Add(item, new List()); } Console.WriteLine("Prüfen ob alle schlüssel gesetzt sind"); foreach (var item in wareZuKundenNummer) { Console.WriteLine(item.Key); } foreach (var wzkElement in wareZuKundenNummer) { foreach (var kzwElement in kundennummerZuWare) { foreach (var produkt in kzwElement.Value) { if (wzkElement.Key == produkt) { wareZuKundenNummer[produkt].Add(kzwElement.Key); } } } } Console.WriteLine(); Console.WriteLine("Prüfung wie das neue Dictionary aussieht: "); foreach (var item in wareZuKundenNummer) { Console.WriteLine("Artikel: " + item.Key); foreach (var item2 in item.Value) { Console.WriteLine("-" + item2); } } } } }