Spocoman

07. List Manipulation Advanced

Feb 1st, 2022 (edited)
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.24 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ListManipulationAdvanced
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             List<int> num = Console.ReadLine()
  12.                 .Split()
  13.                 .Select(int.Parse)
  14.                 .ToList();
  15.  
  16.             string[] tokens = Console.ReadLine().Split();
  17.             bool isCharged = false;
  18.  
  19.             while (tokens[0].ToLower() != "end")
  20.             {
  21.                 switch (tokens[0].ToLower())
  22.                 {
  23.                     case "add":
  24.                         int numToAdd = int.Parse(tokens[1]);
  25.                         num.Add(numToAdd);
  26.                         isCharged = true;
  27.                         break;
  28.                     case "remove":
  29.                         int numToRemove = int.Parse(tokens[1]);
  30.                         num.Remove(numToRemove);
  31.                         isCharged = true;
  32.                         break;
  33.                     case "removeat":
  34.                         int indexToRemoveAt = int.Parse(tokens[1]);
  35.                         num.RemoveAt(indexToRemoveAt);
  36.                         isCharged = true;
  37.                         break;
  38.                     case "insert":
  39.                         int numToInsert = int.Parse(tokens[1]);
  40.                         int indexToInsert = int.Parse(tokens[2]);
  41.                         num.Insert(indexToInsert, numToInsert);
  42.                         isCharged = true;
  43.                         break;
  44.                     case "contains":
  45.                         Console.WriteLine(num.Contains(int.Parse(tokens[1])) ? "Yes" : "No such number");
  46.                         break;
  47.                     case "printeven":
  48.                         Console.WriteLine(string.Join(" ", num.Where(n => n % 2 == 0)));
  49.                         break;
  50.                     case "printodd":
  51.                         Console.WriteLine(string.Join(" ", num.Where(n => n % 2 == 1)));
  52.                         break;
  53.                     case "getsum":
  54.                         Console.WriteLine(num.Sum());
  55.                         break;
  56.                     case "filter":
  57.  
  58.                         if (tokens[1] == "<")
  59.                         {
  60.                             Console.WriteLine(string.Join(" ", num.Where(n => n < int.Parse(tokens[2]))));
  61.                         }
  62.                         else if (tokens[1] == ">")
  63.                         {
  64.                             Console.WriteLine(string.Join(" ", num.Where(n => n > int.Parse(tokens[2]))));
  65.                         }
  66.                         else if (tokens[1] == "<=")
  67.                         {
  68.                             Console.WriteLine(string.Join(" ", num.Where(n => n <= int.Parse(tokens[2]))));
  69.                         }
  70.                         else if (tokens[1] == ">=")
  71.                         {
  72.                             Console.WriteLine(string.Join(" ", num.Where(n => n >= int.Parse(tokens[2]))));
  73.                         }
  74.                         break;
  75.                 }
  76.  
  77.                 tokens = Console.ReadLine().Split();
  78.             }
  79.             if (isCharged)
  80.             {
  81.                 Console.WriteLine(string.Join(" ", num));
  82.             }
  83.         }
  84.     }
  85. }
  86.  
Add Comment
Please, Sign In to add comment