var i = 0;
var races = File.ReadAllLines(ArchionFileName)
.Skip(1) // skip header
.Select(x => (content: x, index: i++)) // add index, so we can output it later
.Select(x => Race.FromString(x.content, x.index));
var top3 = races.Where(x => x.Placement <= 3).ToList(); // we only care about races where we finished top 3
var fastest = top3.MinBy(x => x.TotalSeconds);
var slowest = top3.MaxBy(x => x.TotalSeconds);
Console.WriteLine($"The fastest race was {fastest.Index} with {fastest.TotalSeconds} seconds");
Console.WriteLine($"The slowest race was {slowest.Index} with {slowest.TotalSeconds} seconds");
var i = 0;
var races = File.ReadAllLines(ArchionFileName)
.Skip(1) // skip header
.Select(x => (content: x, index: i++)) // add index, so we can output it later
.Select(x => Race.FromString(x.content, x.index));
var top3 = races.Where(x => x.Placement <= 3).ToList(); // we only care about races where we finished top 3
var fastest = top3.MinBy(x => x.TotalSeconds);
var slowest = top3.MaxBy(x => x.TotalSeconds);
Console.WriteLine($"The fastest race was {fastest.Index} with {fastest.TotalSeconds} seconds");
Console.WriteLine($"The slowest race was {slowest.Index} with {slowest.TotalSeconds} seconds");