Last active
March 26, 2023 15:54
-
-
Save jedjohan/d5a9e10565847b5a57b65edcbaee38f8 to your computer and use it in GitHub Desktop.
Löprundor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// skapa lite random löprundor och lägg i en lista | |
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
var löprundor = new List<LöpRunda> | |
{ | |
new LöpRunda(5, 20.3), | |
new LöpRunda(10, 55), | |
new LöpRunda(11, 69), | |
new LöpRunda(10, 47.5), | |
new LöpRunda(11.1, 54), | |
new LöpRunda(16.3, 88), | |
new LöpRunda(5, 26) | |
}; | |
// loopa alla löprundorna | |
Console.WriteLine("-------------------- Detta är alla dina registrerade löprundor"); | |
foreach (var löprunda in löprundor) | |
{ | |
löprunda.SkrivutTillConsole(); | |
} | |
// räkna ut genomsnittshastighet för alla löprundorna | |
Console.WriteLine("-------------------- För alla dina rundor är detta average hastighet min/km"); | |
Console.WriteLine(löprundor.Select(s => s.Pace).Average()); // Denna använder LINQ ist som ovan med for each. Men vet inte om ni förväntas förstå sånt ? | |
// visa alla löprundor som är 10 km | |
Console.WriteLine("-------------------- Du har löpt dessa 10 km rundor"); | |
foreach (var löprunda in löprundor) | |
{ | |
if (löprunda.DistanceInKilometers is >= 10.0 and < 11.0) | |
{ | |
löprunda.SkrivutTillConsole(); | |
} | |
} | |
// visa alla löprundor som är mellan 3 & 6 min/km | |
Console.WriteLine("-------------------- Du har löpt dessa rundor med en hastighet mellan 3 & 6 min/km"); | |
foreach (var löprunda in löprundor) | |
{ | |
if (löprunda.Pace is > 3.0 and < 6.0 ) | |
{ | |
löprunda.SkrivutTillConsole(); | |
} | |
} | |
Console.WriteLine("-------------------- Du har löpt dessa 11 km rundor"); | |
var elvaKmRundor =löprundor.Where(x => x.DistanceInKilometers == 11); // Denna använder LINQ ist som ovan med for each. Men vet inte om ni förväntas förstå sånt ? | |
foreach (LöpRunda löprunda in elvaKmRundor) | |
{ | |
löprunda.SkrivutTillConsole(); | |
} | |
// klassen som håller properties för en löprunda | |
class LöpRunda | |
{ | |
public double DistanceInKilometers { get; set; } // Detta är en get + set property | |
public double TimeInMinutes { get; set; } // Detta är en get + set property | |
public double Pace { // Detta är BARA en get property eftersom den är beräknad. Ber man om dess värde så räknar den ut pace och returnerar | |
get | |
{ | |
return TimeInMinutes / DistanceInKilometers; | |
} | |
} | |
public LöpRunda(double distance, double time) // Detta är konstuktorn | |
{ | |
DistanceInKilometers = distance; | |
TimeInMinutes = time; | |
} | |
public void SkrivutTillConsole() // Detta är en metod som skriver ut en löprunda | |
{ | |
Console.WriteLine($"Distance: {DistanceInKilometers} km"); | |
Console.WriteLine($"Time: {TimeInMinutes} min"); | |
Console.WriteLine($"Pace: {Pace} min/km"); | |
Console.WriteLine(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment