Skip to content

Instantly share code, notes, and snippets.

@jedjohan
Last active March 26, 2023 15:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jedjohan/d5a9e10565847b5a57b65edcbaee38f8 to your computer and use it in GitHub Desktop.
Save jedjohan/d5a9e10565847b5a57b65edcbaee38f8 to your computer and use it in GitHub Desktop.
Löprundor
// 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