Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace _04.ListOperations
- {
- class ListOperations
- {
- static void Main()
- {
- List<int> numbers = Console.ReadLine()
- .Split(' ')
- .Select(int.Parse)
- .ToList();
- string command = Console.ReadLine();
- while (true)
- {
- if (command == "End")
- {
- break;
- }
- string[] currentComandAsTokents = command.Split();
- ListManipulations(numbers, currentComandAsTokents);
- command = Console.ReadLine();
- }
- Console.WriteLine(string.Join(" ", numbers));
- }
- private static void ListManipulations(List<int> numbers, string[] currentComandAsTokents)
- {
- switch (currentComandAsTokents[0])
- {
- case "Add":
- int numberToAdd = int.Parse(currentComandAsTokents[1]);
- numbers.Add(numberToAdd);
- break;
- case "Insert":
- int numberToInsert = int.Parse(currentComandAsTokents[1]);
- int indexToInsert = int.Parse(currentComandAsTokents[2]);
- if (indexToInsert >= numbers.Count)
- {
- Console.WriteLine("Invalid index");
- }
- else
- {
- numbers.Insert(indexToInsert, numberToInsert);
- }
- break;
- case "Remove":
- int indexToRemove = int.Parse(currentComandAsTokents[1]);
- if (indexToRemove >= numbers.Count)
- {
- Console.WriteLine("Invalid index");
- }
- else
- {
- numbers.RemoveAt(indexToRemove);
- }
- break;
- case "Shift":
- if (currentComandAsTokents[1] == "left")
- {
- int count = int.Parse(currentComandAsTokents[2]);
- if (numbers.Count >= 1)
- {
- for (int i = 0; i < count; i++)
- {
- int firstNumber = numbers[0];
- for (int j = 0; j < numbers.Count - 1; j++)
- {
- numbers[j] = numbers[j + 1];
- }
- numbers[numbers.Count - 1] = firstNumber;
- }
- }
- else
- {
- break;
- }
- }
- else if (currentComandAsTokents[1] == "right")
- {
- int count = int.Parse(currentComandAsTokents[2]);
- if (numbers.Count >= 1)
- {
- for (int i = 0; i < count; i++)
- {
- int lastNumber = numbers[numbers.Count - 1];
- for (int j = numbers.Count - 1; j > 0; j--)
- {
- numbers[j] = numbers[j - 1];
- }
- numbers[0] = lastNumber;
- }
- }
- else
- {
- break;
- }
- }
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement