using System; using System.Collections.Generic; using System.Linq; // Modifizieren/Erweitern Sie die KeyValue Klassen bzw. das Main()-Programm // derart, dass Sie eine weitergehende Kalenderverwaltung realisieren. In // Main erstellen Sie bitte eine Menü mit Auswahl: // 1 - Termin eintragen (tt.mm|Thema|Projekt|Teilnehmer|Uhrzeit) // 2 - Monatstermine auflisten; Eingabe Monat mm // 3 - Jahrestermine auflisten // 4 - Alle Termine eines Projekts im Monat mm; Eingabe mm|Projektname // Diskutieren Sie die KeyValue-Struktur // 12 x 100 (5 Tage x 4 Wochen x 5 Termine/Tag); 10 Projekte // Variante 1: Ebene 1: Monat; Ebene 2: Projekt; Value 2: Restliche Infos // 06 | { // Prog2 | { // 09, 8:45, Übung, Gruppe-B // 09, 9:45, Vorlesung, alle // } // | { // DigBB | { ... // Ebene 1: 12 Elemente, 10 Elemente, 10 Einträge/Proj. // Suchschritte: 6 + 5 + 5 = 16 // KeyValueList>> givemeAName // Variante 2: Ebene 1: Datum; Value 1: Restl. Infos // 09-06 | { // 08:00, Übung, Prog2, Gruppe-B // 09:45, Vorlesung, Prog2, alle // } // 10-06 | { // 09:45, Vorlesung, DigBB, alle // } // DateTime datum = new DateTime(2020, 6, 9) // KeyValueList> organizer = .... // Ebene 1: 240 Arbeitstage, Ebene 2: 5 Elemente // Suchschritte: 120 + 3 = 123 namespace _07KeyValueList { class Termin { public string was; public string wer; public Termin(string was, string wer) { this.was = was; this.wer = wer; } public override string ToString() => $"Termin: {was} mit {wer}"; } class ComplexKey : IComparable { public int Wert1 { get; set; } public string Wert2 { get; set; } public ComplexKey(int Wert1, string Wert2) { this.Wert1 = Wert1;this.Wert2 = Wert2; } public int CompareTo(ComplexKey other) { int diff = Wert1.CompareTo(other.Wert1); if (diff != 0) return diff; return Wert2.CompareTo(other.Wert2); } } class Program { static void Main(string[] args) { KeyValueListe kvListe = new KeyValueListe(); kvListe["Wienkop"] = 1614; kvListe["Otsa"] = 1855; Console.WriteLine($"Telefonnummer von Wienkop: {kvListe["Wienkop"]}"); Console.WriteLine("-----------"); kvListe.Print(); Console.WriteLine("-----------"); kvListe["Otsa"] = 9999; kvListe.Print(); Console.WriteLine("-----------"); KeyValueListe termine = new KeyValueListe(); termine["Wienkop"] = new Termin("IT-Proj", "Digitale Visitenkarte"); termine.Print(); //foreach (var item in termine) //{ // Console.WriteLine(item.val); //} List termineMi = new List(); termineMi.Add(new Termin("08:00 Prog2-Vorlesung", "Gruppe-Wienkop")); termineMi.Add(new Termin("09:45 Dig Bildbearbeitung", "MA-MIN")); List termineDi = new List(); termineDi.Add(new Termin("08:00 Prog2-Übung", "Gruppe-Wienkop")); termineDi.Add(new Termin("09:45 Prog2-Vorlesung", "Gruppe-Wienkop")); termineDi.Add(new Termin("11:30 Mitarbeiterbesprechung", "Jobbörse")); KeyValueListe> terminverwaltung = new KeyValueListe>(); terminverwaltung["02.06.2020"] = termineDi; terminverwaltung["03.06.2020"] = termineMi; terminverwaltung["02.06.2020"].Add(new Termin("11:30 Teams", "BayernMINT")); // Pfannkuchen, Zutaten(Mehl, Milch, Eier), Zubereitung (Schritt1, Schritt2, ...) KeyValueListe, List)> rezepte = new KeyValueListe, List)>(); List zutaten = new List(); zutaten.Add("Mehl"); zutaten.Add("Milch"); zutaten.Add("Eier"); List zubereitung = new List(); zubereitung.Add("Eier in Schüssel schlagen"); zubereitung.Add("mit Mehl und Milch verrühren"); rezepte["Pfannkuchen"] = (zutaten, zubereitung); List zutaten2; List zubereitung2; (zutaten2, zubereitung2) = rezepte["Pfannkuchen"]; Console.WriteLine("Zutaten: "); foreach (var item in zutaten2) { Console.WriteLine(item); } Console.WriteLine("Zubereitung:"); foreach (var item in zubereitung2) { Console.WriteLine(item); } //KeyValueListe> l3 = new KeyValueListe>(); //l3["Wienkop"]['A'] = "Teambesprechung"; foreach (var tag in terminverwaltung) { Console.WriteLine($"\nTermine am {tag.key}:"); foreach (var item in tag.val) { Console.WriteLine(item); } } if ((2, 3, "2020").CompareTo((2, 3, "2020")) == 0) Console.WriteLine("Ist gleich"); // Ergebnis: die beiden sind gleich! else Console.WriteLine("Ist ungleich"); KeyValueListe>> t3 = new KeyValueListe>>(); List l; t3[6]["Prog2"] = l = new List(); l.Add("09.45 Vorlesung"); KeyValueListe<(int, int), string> t4 = new KeyValueListe<(int, int), string>(); t4[(3, 6)] = "Kaffestunde"; t4[(2, 5)] = "Vorlesung"; KeyValueListe t5 = new KeyValueListe(); } } }