TheBulgarianWolf

List Operations

Dec 12th, 2020
812
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.00 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace SoftUni_List_Advanced
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Console.Write("Enter your numbers here: ");
  12.             List<int> numbers = ReadList();
  13.             Console.WriteLine("There are several command you can use now:");
  14.             Console.WriteLine("Add {} - adds the given number to the list.");
  15.             Console.WriteLine("Remove {} - removes the given number from  the list.");
  16.             Console.WriteLine("Shift left {count} - first number becomes last 'count' times.");
  17.             Console.WriteLine("Shift right {count} - last number becomes first 'count' times.");
  18.             Console.WriteLine("end - stops the program and prints the final list.");
  19.             while (true)
  20.             {
  21.                 string line = Console.ReadLine();
  22.                 if (line == "end")
  23.                 {
  24.                     break;
  25.                 }
  26.  
  27.                 string[] tokens = line.Split();
  28.                 switch (tokens[0])
  29.                 {
  30.                     case "Add":
  31.                         Add(numbers, int.Parse(tokens[1]));
  32.                         break;
  33.                     case "Remove":
  34.                         Remove(numbers, int.Parse(tokens[1]));
  35.                         break;
  36.  
  37.                     case "Insert":
  38.                         Insert(numbers, int.Parse(tokens[1]), int.Parse(tokens[2]));
  39.                         break;
  40.                     case "Shift":
  41.                         if (int.Parse(tokens[2]) > numbers.Count)
  42.                         {
  43.                             Console.WriteLine("Invalid index");
  44.                         }
  45.                         else if (tokens[1] == "left")
  46.                         {
  47.                             ShiftLeft(numbers, int.Parse(tokens[2]));
  48.  
  49.                         }
  50.                         else if (tokens[1] == "right")
  51.                         {
  52.                             ShiftRight(numbers, int.Parse(tokens[2]));
  53.                         }
  54.                         break;
  55.                     default:
  56.                         Console.WriteLine("Invalid command!");
  57.                         break;
  58.                 }
  59.             }
  60.  
  61.             Console.WriteLine(string.Join(" ", numbers));
  62.  
  63.         }
  64.  
  65.         static List<int> ReadList()
  66.         {
  67.             List<int> list = new List<int>();
  68.             var line = Console.ReadLine();
  69.             list = line.Split().Select(int.Parse).ToList();
  70.             return list;
  71.         }
  72.  
  73.         static void PrintList(List<int> list)
  74.         {
  75.             for (int i = 0; i < list.Count; i++)
  76.             {
  77.                 Console.WriteLine(list[i]);
  78.             }
  79.         }
  80.  
  81.         static void Add(List<int> numbers, int num)
  82.         {
  83.             numbers.Add(num);
  84.         }
  85.  
  86.         static void Remove(List<int> numbers, int num)
  87.         {
  88.             numbers.Remove(num);
  89.         }
  90.  
  91.  
  92.         static void Insert(List<int> numbers, int num, int index)
  93.         {
  94.             numbers.Insert(index, num);
  95.         }
  96.  
  97.         static void ShiftLeft(List<int> numbers, int index)
  98.         {
  99.             for(int k = 0; k < index; k++)
  100.             {
  101.                 int temp = numbers[0];
  102.                 for (int i = 0; i < numbers.Count-1; i++) // 1 2 3 4 5
  103.                 {
  104.                    
  105.                     numbers[i] = numbers[i + 1];
  106.                    
  107.                 }
  108.                 numbers[numbers.Count - 1] = temp;
  109.             }
  110.            
  111.         }
  112.  
  113.         static void ShiftRight(List<int> numbers, int index)
  114.         {
  115.             for (int k = 0; k < index; k++)
  116.             {
  117.                 int temp = numbers[numbers.Count - 1];
  118.                 for (int i = numbers.Count - 1; i > 0; i--)
  119.                 {
  120.                    
  121.                     numbers[i] = numbers[i-1];
  122.                    
  123.                 }
  124.                 numbers[0] = temp;
  125.             }
  126.         }
  127.  
  128.     }
  129. }
  130.  
Add Comment
Please, Sign In to add comment