static void Main(string[] args) { string [] personInfo = Console.ReadLine().Split(";"); List <Person> people = new List <Person>(); for (int i = 0; i < personInfo.Length; i++) { string[] tokens = personInfo[i].Split("="); Person person = null; try { person = new Person(tokens[0], decimal.Parse(tokens[1])); } catch (ArgumentException e) { Console.WriteLine(e.Message); return; } if (person != null) { people.Add(person); } } string[] productInfo = Console.ReadLine().Split(";" , StringSplitOptions.RemoveEmptyEntries); List <Product> products = new List <Product>(); for (int i = 0; i < productInfo.Length; i++) { string[] tokens = productInfo[i].Split("="); Product product = null; try { product = new Product(tokens[0], decimal.Parse(tokens[1])); } catch (ArgumentException e) { Console.WriteLine(e.Message); return; } if (product != null) { products.Add(product); } } string command = string.Empty; while ((command = Console.ReadLine()) != "END") { string[] tokens = command.Split(); Person person = null; Product product = null; if (people.Any(X => X.Name == tokens[0])) { person = people .FirstOrDefault(p => p.Name == tokens[0]); } if (products.Any(X => X.Name == tokens[1])) { product = products .FirstOrDefault(p => p.Name == tokens[1]); } if (person != null && product != null) { person.Buy(product); } } foreach (var person in people) { Console.WriteLine(person.ToString()); } }