Example #1
0
        private static Dictionary <string, CompanyStuff> ParseInput(int rows)
        {
            Dictionary <string, CompanyStuff> companiesData = new Dictionary <string, CompanyStuff>();
            var splitBy = "| -".ToCharArray();

            for (int i = 0; i < rows; i++)
            {
                var args = Console.ReadLine()
                           .Split(splitBy, StringSplitOptions.RemoveEmptyEntries);

                string companyName   = args[0];
                long   productAmount = long.Parse(args[1]);
                string productName   = args[2];

                CompanyStuff companyStuff = new CompanyStuff(companyName);

                if (!companiesData.ContainsKey(companyName))
                {
                    companiesData.Add(companyName, companyStuff);
                }

                if (!companiesData[companyName].products.ContainsKey(productName))
                {
                    companiesData[companyName].products.Add(productName, 0);
                }

                companiesData[companyName].products[productName] += productAmount;
            }

            return(companiesData);
        }
Example #2
0
        private static void PrintOutput(Dictionary <string, CompanyStuff> companiesData)
        {
            var orderedData = companiesData.OrderBy(x => x.Key);

            foreach (var item in orderedData)
            {
                CompanyStuff cData = item.Value;
                var          data  = cData.products.Select(x => x.Key + "-" + x.Value);
                Console.WriteLine($"{cData.CompanyName}: {string.Join(", ",data)}");
            }
        }