Skip to content

leoggehrer/CSAdvanced-MyQuery

Repository files navigation

Übung:

Lernziele der Aufgaben Teil A:

  • Verstehen und verwenden von Lambda-Expressions
  • Verstehen und verwenden von Erweiterungsmethoden

MyQuery

Teil A

Grundsystem

MyQuery Erstellen Sie die Projektstruktur von MyQuery und fassen Sie die einzelnen Projekte zu einer Solution zusammen. Die Struktur besteht aus den Projekten:

Name Beschreibung
MyQuery.Logic In diesem Projekt ist die gesamte Logik implementiert.
MyQuery.Logic.UnitTest In diesem Projekt befinden sich die UnitTests der Logik.
MyQuery.ConApp Ein Konsolen-Anwendung zum Testen der Logik.

Verbinden Sie die Abhängigkeiten der einzelnen Projekte untereinander.

Funktionsumfang Erweitern Sie den Funktionsumfang für alle Sammlungen (IEnumerable<T>) um folgende Operationen:

Name Beschreibung
IEnumerable<T> Filter(Func<T, bool> predicate) Filtert die Auflistung nach dem angebenen Kriterium.
IEnumerable<TResult> Map(Func<T, TResult> selector) Mapped den Quelltyp T auf einen Zieltyp TResult.
T[] ToArray() Konvertiert die Auflistung zu einem Array.
List<T> ToList() Konvertiert die Auflistung zu einer Liste.
double Sum(Func<T, double> transform) Summiert die Werte von der Funktion 'transform'.
double? Min(Func<T, double> transform) Liefert den Minimalwert der Auflistung.
double? Max(Func<T, double> transform) Liefert den Maximalwert der Auflistung.
double? Average(Func<T, double> transform) Liefert den Durchschnittswert der Auflistung.
IEnumerable<T> ForEach(Action<T> action) Führt für jedes Element der Auflistung die 'action' aus.
IEnumerable<T> ForEach(Action<int, T> action) Führt für jedes Element der Auflistung die 'action' aus und liefert zusätzlich den Parameter n-tes Element.

Funktionsumfang für Experten (optional) Erweitern Sie den Funktionsumfang für alle Sammlungen (IEnumerable<T>) um folgende Operationen:

Name Beschreibung
IEnumerable<T> SortBy(Func<T, TKey> orderBy) Sortiert die Auflistung nach orderBy.
IEnumerable<T> Distinct() Bereinigt die Auflistung von Duplikaten.

Anmerkung: Der erweiterte Funktionsumfang ist nur für Experten, also optional.

Testen des Systems

Erstellen Sie mindestens zwei UnitTests pro Funktion und Testen Sie das System ausführlich. Bitte achten Sie auf eine sinnvolle Gestaltung der Tests!

Namenskonvention für UnitTests:

ActionSubject_Condition_ExpectedResult

Hilfsmitteln

  • keine Angaben

Abgabe

  • Termin: 1 Woche nach der Ausgabe

  • Klasse:

  • Name:

Quellen

  • keine Angabe

**Viel Erfolg!**

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages