public void Run() { var numbersToSum = new List <double> (); CurrentConsole.WriteLine("Please enter numbers you want me to add. When you have finished just enter 'done'."); while (true) { CurrentConsole.Write("Enter a number or type 'done': "); var inputString = Console.ReadLine(); var inputNumber = 0.0; if (double.TryParse(inputString, out inputNumber)) { numbersToSum.Add(inputNumber); } else { if (inputString.ToLowerInvariant() == "done") { break; } CurrentConsole.WriteLine(string.Format("I'm sorry, '{0}' is not a number or the word done.", inputString)); } } var sum = Summarizer.Sum(numbersToSum.ToArray()); CurrentConsole.WriteLine(string.Format("The sum of the numbers {0} is {1}", string.Join(", ", numbersToSum.Select(n => n.ToString())), sum)); }