elena1234

ThePianist-ExamPreparation

Dec 1st, 2020 (edited)
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.50 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5.  
  6. namespace TheImitationGame
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             int initialNumber = int.Parse(Console.ReadLine());
  13.             var dictPieceComposerKey = new Dictionary<string, List<string>>();
  14.             for (int i = 0; i < initialNumber; i++)
  15.             {
  16.                 string[] input = Console.ReadLine().Split('|').ToArray();
  17.                 string piece = input[0];
  18.                 string composer = input[1];
  19.                 string key = input[2];
  20.                 if (dictPieceComposerKey.ContainsKey(piece) == false)
  21.                 {
  22.                     dictPieceComposerKey[piece] = new List<string>();
  23.                     dictPieceComposerKey[piece].Add(composer);
  24.                     dictPieceComposerKey[piece].Add(key);
  25.                 }
  26.             }
  27.  
  28.             string command = string.Empty;
  29.             while ((command = Console.ReadLine()) != "Stop")
  30.             {
  31.                 string[] commandArray = command.Split('|').ToArray();
  32.                 if (commandArray[0] == "Add")
  33.                 {
  34.                     string piece = commandArray[1];
  35.                     string composer = commandArray[2];
  36.                     string key = commandArray[3];
  37.                     if (dictPieceComposerKey.ContainsKey(piece) == false)
  38.                     {
  39.                         dictPieceComposerKey[piece] = new List<string>();
  40.                         dictPieceComposerKey[piece].Add(composer);
  41.                         dictPieceComposerKey[piece].Add(key);
  42.                         Console.WriteLine($"{ piece} by { composer} in { key} added to the collection!");
  43.                     }
  44.  
  45.                     else
  46.                     {
  47.                         Console.WriteLine($"{piece} is already in the collection!");
  48.                     }
  49.                 }
  50.  
  51.                 else if (commandArray[0] == "Remove")
  52.                 {
  53.                     string piece = commandArray[1];
  54.                     if (dictPieceComposerKey.ContainsKey(piece) == true)
  55.                     {
  56.                         dictPieceComposerKey.Remove(piece);
  57.                         Console.WriteLine($"Successfully removed {piece}!");
  58.                     }
  59.  
  60.                     else
  61.                     {
  62.                         Console.WriteLine($"Invalid operation! {piece} does not exist in the collection.");
  63.                     }
  64.                 }
  65.  
  66.                 else if (commandArray[0] == "ChangeKey")
  67.                 {
  68.                     string piece = commandArray[1];
  69.                     string newKey = commandArray[2];
  70.                     if (dictPieceComposerKey.ContainsKey(piece) == true)
  71.                     {
  72.                         dictPieceComposerKey[piece][1] = newKey;
  73.                         Console.WriteLine($"Changed the key of {piece} to {newKey}!");
  74.                     }
  75.  
  76.                     else
  77.                     {
  78.                         Console.WriteLine($"Invalid operation! { piece} does not exist in the collection.");
  79.                     }
  80.                 }
  81.             }
  82.  
  83.             foreach (var item in dictPieceComposerKey.OrderBy(x => x.Key).ThenBy(x => x.Value[0]))
  84.             {
  85.                 string piece = item.Key;
  86.                 string composer = item.Value[0];
  87.                 string key = item.Value[1];
  88.                 Console.WriteLine($"{piece} -> Composer: {composer}, Key: {key}");
  89.             }
  90.         }
  91.     }
  92. }
Add Comment
Please, Sign In to add comment