public static void Main() { CurrencyConversion calculator = new CurrencyConversion(); Dictionary <string, decimal> exchangeRates = calculator.getExchangeRates(); Console.WriteLine("What is the currency you are exchanging from? (? -> USD). Enter 'list' to display list of currencies."); string currencyEntry = Console.ReadLine(); while (!exchangeRates.ContainsKey(currencyEntry)) { if (currencyEntry == "list") { Console.WriteLine("Available currencies: "); foreach (KeyValuePair <string, decimal> item in exchangeRates) { Console.Write(item.Key + " "); } } else { Console.WriteLine("Please enter a valid currency."); } Console.WriteLine("What is the currency you are exchanging from? (? -> USD). Enter 'list' to display list of currencies."); currencyEntry = Console.ReadLine(); } Console.WriteLine("How much " + currencyEntry + " are you exchanging?"); string moneyEntry = Console.ReadLine(); decimal money; while (!decimal.TryParse(moneyEntry, out money) || money <= 0 || (Decimal.Round(money, 2) != money)) { Console.WriteLine("Must be a valid amount of money greater than 0. Enter amount to exchange: "); moneyEntry = Console.ReadLine(); } decimal rate = exchangeRates[currencyEntry]; decimal exchangedMoney = calculator.exchange(money, rate); Console.WriteLine(money + " " + currencyEntry + " at an exchange rate of " + rate + " is " + exchangedMoney + " USD."); }