From a26546e8a441ee622a33d5b0cc8f63d25f0f5f15 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann <m@nuth.ch> Date: Fri, 1 Mar 2024 13:05:10 +0100 Subject: [PATCH] Solve task 1 --- Tasks/DT1/{DT1_0.cs => DT1.cs} | 29 ++++++++++++++++++++++------- Tasks/DT1/DT1.csproj | 2 +- 2 files changed, 23 insertions(+), 8 deletions(-) rename Tasks/DT1/{DT1_0.cs => DT1.cs} (81%) diff --git a/Tasks/DT1/DT1_0.cs b/Tasks/DT1/DT1.cs similarity index 81% rename from Tasks/DT1/DT1_0.cs rename to Tasks/DT1/DT1.cs index 6bff177..309aa1d 100644 --- a/Tasks/DT1/DT1_0.cs +++ b/Tasks/DT1/DT1.cs @@ -17,9 +17,20 @@ namespace DT1 { } public class StudentClass { - public Func<Student, string, bool> studentSelector = /* TO BE DONE */ - public GradeCalc gradeCalculator = /* TO BE DONE */ - public Func<Student, bool> passedSelector = /* TO BE DONE */ + public Func<Student, string, bool> studentSelector = (student, surname) => + { + return string.Compare(student.LastName, surname, true) == 0; + }; + + public GradeCalc gradeCalculator = (grades) => + { + return Math.Round(((grades.Average() / 100 * 5) + 1) * 2, MidpointRounding.AwayFromZero) / 2; + }; + + public Func<Student, bool> passedSelector = (student) => + { + return student.Year == GradeLevel.FourthYear && student.Grade >= 4; + }; #region data public List<Student> students = new List<Student> { @@ -70,15 +81,16 @@ namespace DT1 { } public List<Student> SearchStudent(Func<Student, string, bool> select, String lastName) { - List<Student> result = new List<Student>(); + List<Student> result = new() { }; foreach (Student s in students) { if (select(s, lastName)) result.Add(s); } return result; } - public IEnumerable<Student> QueryPassed(Func<Student,bool> passed) { - return /* TO BE DONE */ + public IEnumerable<Student> QueryPassed(Func<Student,bool> passed) + { + return students.Where(passed); } static void show(String titel, List<Student> students) { @@ -101,7 +113,10 @@ namespace DT1 { } public static class ListUtils { - public static IEnumerable<T> ... /* TO BE DONE */ + public static IEnumerable<T> What<T>(this IList<T> list, Func<T, bool> selector) + { + return list.Where(selector); + } } } diff --git a/Tasks/DT1/DT1.csproj b/Tasks/DT1/DT1.csproj index 2150e37..0af2984 100644 --- a/Tasks/DT1/DT1.csproj +++ b/Tasks/DT1/DT1.csproj @@ -4,7 +4,7 @@ <OutputType>Exe</OutputType> <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> - <Nullable>enable</Nullable> + <Nullable>disable</Nullable> </PropertyGroup> </Project>