using System.Collections.Generic;
public static void Main()
var swimmers = new List<Swimmer>();
for(int day = 0; day <= 365; day++)
swimmers.Add(new Swimmer() { Seconds = new Random(day).Next(200, 300), SwimDate = new DateTime(2015, 1, 1).AddDays(day) });
string formatString = "Date: {0}, Time: {1}, Delta: {2}";
String.Format(formatString
, first.SwimDate.ToString("MM/dd/yyyy")
.Zip(swimmers, (cur, prev) =>
String.Format(formatString
, cur.SwimDate.ToString("MM/dd/yyyy")
, (cur.Seconds - prev.Seconds).ToString().PadLeft(5)
.ToList().ForEach(output =>
Console.WriteLine(output);
double total = swimmers.Select(swimmer => swimmer.Seconds).Sum();
runningTotal += swimmer.Seconds;
return String.Format("Date: {0}, Cumulative Distribution: {1:N5}"
, swimmer.SwimDate.ToString("MM/dd/yyyy")
.ToList().ForEach(output =>
Console.WriteLine(output);
int previousSeconds = int.MinValue;
.OrderBy(swimmer => swimmer.Seconds)
.ThenBy(swimmer => swimmer.SwimDate)
if(previousSeconds != swimmer.Seconds)
previousSeconds = swimmer.Seconds;
return String.Format("#{0} {1} {2} seconds"
, rank.ToString().PadLeft(3)
, swimmer.SwimDate.ToString("MM/dd/yyyy")
.ToList().ForEach(output =>
Console.WriteLine(output);
public int Seconds { get; set; }
public DateTime SwimDate { get; set; }