SHARE
TWEET

Untitled

a guest Feb 22nd, 2019 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _04.ListOperations
  8. {
  9.     class ListOperations
  10.     {
  11.         static void Main()
  12.         {
  13.             List<int> numbers = Console.ReadLine()
  14.                 .Split(' ')
  15.                 .Select(int.Parse)
  16.                 .ToList();
  17.  
  18.             string command = Console.ReadLine();
  19.  
  20.             while (true)
  21.             {
  22.                 if (command == "End")
  23.                 {
  24.                     break;
  25.                 }
  26.  
  27.                 string[] currentComandAsTokents = command.Split();
  28.  
  29.                 ListManipulations(numbers, currentComandAsTokents);
  30.  
  31.                 command = Console.ReadLine();
  32.             }
  33.             Console.WriteLine(string.Join(" ", numbers));
  34.         }
  35.  
  36.         private static void ListManipulations(List<int> numbers, string[] currentComandAsTokents)
  37.         {
  38.             switch (currentComandAsTokents[0])
  39.             {
  40.                 case "Add":
  41.                     int numberToAdd = int.Parse(currentComandAsTokents[1]);
  42.                     numbers.Add(numberToAdd);
  43.                     break;
  44.  
  45.                 case "Insert":
  46.                     int numberToInsert = int.Parse(currentComandAsTokents[1]);
  47.                     int indexToInsert = int.Parse(currentComandAsTokents[2]);
  48.                     if (indexToInsert >= numbers.Count)
  49.                     {
  50.                         Console.WriteLine("Invalid index");
  51.                     }
  52.                     else
  53.                     {
  54.                         numbers.Insert(indexToInsert, numberToInsert);
  55.                     }
  56.                     break;
  57.  
  58.                 case "Remove":
  59.                     int indexToRemove = int.Parse(currentComandAsTokents[1]);
  60.                     if (indexToRemove >= numbers.Count)
  61.                     {
  62.                         Console.WriteLine("Invalid index");
  63.                     }
  64.                     else
  65.                     {
  66.                         numbers.RemoveAt(indexToRemove);
  67.                     }
  68.                     break;
  69.  
  70.                 case "Shift":
  71.                     if (currentComandAsTokents[1] == "left")
  72.                     {
  73.                         int count = int.Parse(currentComandAsTokents[2]);
  74.                         if (numbers.Count >= 1)
  75.                         {
  76.                             for (int i = 0; i < count; i++)
  77.                             {
  78.                                 int firstNumber = numbers[0];
  79.                                 for (int j = 0; j < numbers.Count - 1; j++)
  80.                                 {
  81.                                     numbers[j] = numbers[j + 1];
  82.                                 }
  83.                                 numbers[numbers.Count - 1] = firstNumber;
  84.                             }
  85.                         }
  86.                         else
  87.                         {
  88.                             break;
  89.                         }
  90.                        
  91.                     }
  92.                     else if (currentComandAsTokents[1] == "right")
  93.                     {
  94.                         int count = int.Parse(currentComandAsTokents[2]);
  95.                         if (numbers.Count >= 1)
  96.                         {
  97.                             for (int i = 0; i < count; i++)
  98.                             {
  99.                                 int lastNumber = numbers[numbers.Count - 1];
  100.                                 for (int j = numbers.Count - 1; j > 0; j--)
  101.                                 {
  102.                                     numbers[j] = numbers[j - 1];
  103.                                 }
  104.                                 numbers[0] = lastNumber;
  105.                             }
  106.                         }
  107.                         else
  108.                         {
  109.                             break;
  110.                         }
  111.                     }
  112.                     break;
  113.             }
  114.         }
  115.     }
  116. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top