Commit d79c6e4d authored by Uwe Wienkop's avatar Uwe Wienkop

2020-06-09b

parent 0ec7518e
......@@ -280,7 +280,7 @@ namespace _02VerketteteListe_2
//l1.Print();
l1.AddBeforeNth(2, "Bodo");
l1.Print();
foreach (string item in l1.Iterate(2))
foreach (string item in l1.Filter("er"))
{
Console.WriteLine($"foreach: {item}");
}
......
......@@ -115,18 +115,19 @@ namespace _06GenericList
// an der gespeicherten Pos. weitergemacht.
}
}
//public IEnumerable<T> Filter(string pattern)
//{
// for (Element item = anf; item != null; item = item.next)
// {
// if (item.daten.Contains(pattern))
// yield return item.daten; // Merken dieser Ausführungsposition
// // UND Zurückliefern von item.name
// // Beim nächsten Aufruf von GetEnumerator() wird
// // an der gespeicherten Pos. weitergemacht.
// }
//}
public delegate bool MyFilter<V>(V daten);
public IEnumerable<T> Filter(MyFilter<T> myTest) // string => bool, x => x.Contains("er")
{
for (Element item = anf; item != null; item = item.next)
{
if (myTest(item.daten))
yield return item.daten; // Merken dieser Ausführungsposition
// UND Zurückliefern von item.name
// Beim nächsten Aufruf von GetEnumerator() wird
// an der gespeicherten Pos. weitergemacht.
}
}
public void DeleteFirst()
{
// 1.Fall: Liste ist leer
......
......@@ -24,11 +24,27 @@ namespace _06GenericList
Liste<int> il = new Liste<int>();
il.AddEnd(10);
il.AddEnd(20);
il.Print();
il.AddEnd(23);
il.AddEnd(21);
il.AddEnd(35);
il.AddEnd(40);
foreach (var item in il.Filter(x => x%2==0))
{
Console.WriteLine(item);
}
//il.Print();
Console.WriteLine("*****************");
Liste<string> sl = new Liste<string>();
sl.AddSorted("Emil");
sl.AddSorted("Anton");
sl.AddSorted("Berta");
sl.AddSorted("Dieter");
foreach (var item in sl.Filter(x=>x.Contains("er")))
{
Console.WriteLine(item);
}
Console.WriteLine("*****************");
sl.Print();
Liste<Person> pl = new Liste<Person>();
......
......@@ -98,6 +98,7 @@ namespace _07KeyValueList
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<string, (List<string>, List<string>)> rezepte = new KeyValueListe<string, (List<string>, List<string>)>();
List<string> zutaten = new List<string>();
......@@ -149,7 +150,7 @@ namespace _07KeyValueList
KeyValueListe<(int, int), string> t4 = new KeyValueListe<(int, int), string>();
t4[(3, 6)] = "Kaffestunde";
t4[(3, 5)] = "Vorlesung";
t4[(2, 5)] = "Vorlesung";
KeyValueListe<ComplexKey, string> t5 = new KeyValueListe<ComplexKey, string>();
}
......
......@@ -214,7 +214,6 @@ namespace _07KeyValueList
//}
private Element ElementSearch(K key)
{
for (Element item = anf; item != null; item=item.next)
......
......@@ -6,8 +6,8 @@ namespace _08_UebgDiDatentypSet
{
interface ISet<T>
{
public ISet<T> Intersect(ISet<T> set1, ISet<T> set2);
public ISet<T> Union(ISet<T> set1, ISet<T> set2);
public ISet<T> Intersect(ISet<T> set2); // Schnittmenge
public ISet<T> Union(ISet<T> set2); // Vereinigungsmenge
public IEnumerable<T> GetEnumerator();
public bool Contains(T item); // true, wenn die Menge das Item bereits enthält
public void Add(params T[] obj);
......@@ -16,7 +16,7 @@ namespace _08_UebgDiDatentypSet
// Schreiben Sie eine Listenimplementierung des Datentyps Menge~Set,
// welche das obige Interface implementiert
class ListSet<T> : ISet<T>
class ListSet<T> : ISet<T> where T:IComparable<T>
{
}
}
......@@ -4,19 +4,29 @@ namespace _08DelegateIntro
{
class Program
{
static void Tabelle(double von, double bis)
// Firma-A hat dieses Programm erstellt
delegate double MyFunction(double x);
static void Wertetabelle(double von, double bis, MyFunction funktion)
{
for (double x = von; x <= bis; x += (bis - von) / 5.0)
Console.WriteLine($"{x,6:f2} | {Math.Sin(x),10:f4}");
for (double x = von; x <= bis; x += 1)
Console.WriteLine($"{x,6:f2} | {funktion(x),10:f4}");
Console.WriteLine("-------------------");
}
static double MeinQuadrieren(double x)
// funktion ist eine Variable, die eine Referenz auf eine Funktion übergeben bekommt
// Firma-B möchte es verwenden UND MODIFIZIEREN
static double MeinQuadrieren(double xx)
{
return x * x;
return xx * xx;
}
static double ZweiX(double x) => 2 * x;
static void Main(string[] args)
{
Tabelle(1, 6);
Wertetabelle(1, 4, Math.Sin);
Wertetabelle(1, 3, MeinQuadrieren);
Wertetabelle(1, 3, ZweiX);
Wertetabelle(1, 3, delegate (double a) { return 3 * a; });
Wertetabelle(1, 3, b => 4 * b);
}
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment