Advertisement
Guest User

List Manipulation Advanced

a guest
Oct 24th, 2019
597
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.28 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ListManipulationBasics
  6. {
  7.     class Program
  8.     {
  9.         static void PrintEvenOrOddNumbers(List<int> numbers, string command)
  10.         {
  11.  
  12.             List<int> evenNumbers = new List<int>();
  13.             List<int> oddNumbers = new List<int>();
  14.  
  15.             for (int i = 0; i < numbers.Count; i++)
  16.             {
  17.                 if (numbers[i] % 2 == 0)
  18.                 {
  19.                     evenNumbers.Add(numbers[i]);
  20.                 }
  21.  
  22.                 else
  23.                 {
  24.                     oddNumbers.Add(numbers[i]);
  25.                 }
  26.             }
  27.  
  28.             if (command == "printeven")
  29.             {
  30.                 Console.WriteLine(string.Join(" ", evenNumbers));
  31.             }
  32.  
  33.             else
  34.             {
  35.                 Console.WriteLine(string.Join(" ", oddNumbers));
  36.             }
  37.         }
  38.  
  39.         static void PrintSum(List<int> numbers)
  40.         {
  41.  
  42.             int sum = 0;
  43.  
  44.             for (int i = 0; i < numbers.Count; i++)
  45.             {
  46.                 sum += numbers[i];
  47.             }
  48.  
  49.             Console.WriteLine(sum);
  50.         }
  51.  
  52.         static void printFilterredList(List<int> numbers, string condition, int filterValue)
  53.         {
  54.  
  55.             List<int> smaller = new List<int>();
  56.             List<int> smallerOrEven = new List<int>();
  57.             List<int> bigger = new List<int>();
  58.             List<int> biggerOrEven = new List<int>();
  59.  
  60.             for (int i = 0; i < numbers.Count; i++)
  61.             {
  62.                 int currentNumber = numbers[i];
  63.  
  64.                 if (currentNumber > filterValue)
  65.                 {
  66.                     bigger.Add(currentNumber);
  67.                 }
  68.  
  69.                 if (currentNumber >= filterValue)
  70.                 {
  71.                     biggerOrEven.Add(currentNumber);
  72.                 }
  73.  
  74.                 if (currentNumber < filterValue)
  75.                 {
  76.                     smaller.Add(currentNumber);
  77.                 }
  78.  
  79.                 if (currentNumber <= filterValue)
  80.                 {
  81.                     smallerOrEven.Add(currentNumber);
  82.                 }
  83.             }
  84.  
  85.             List<int> result = new List<int>();
  86.  
  87.             switch (condition)
  88.             {
  89.                 case "<":
  90.                     result = smaller;
  91.                     break;
  92.  
  93.                 case "<=":
  94.  
  95.                     result = smallerOrEven;
  96.                     break;
  97.  
  98.                 case ">":
  99.  
  100.                     result = bigger;
  101.                     break;
  102.  
  103.                 case ">=":
  104.                     result = biggerOrEven;
  105.                     break;
  106.             }
  107.  
  108.             Console.WriteLine(string.Join(" ", result));
  109.         }
  110.  
  111.         static void Main()
  112.         {
  113.  
  114.             List<int> initialList = Console.ReadLine()
  115.                 .Split()
  116.                 .Select(int.Parse)
  117.                 .ToList();
  118.  
  119.             List<int> numbers = new List<int>();
  120.  
  121.             numbers.AddRange(initialList);
  122.             int counter = 0;
  123.  
  124.             string command = "";
  125.  
  126.             while ((command = Console.ReadLine().ToLower()) != "end")
  127.             {
  128.                 List<string> commandAsList = command
  129.                     .Split()
  130.                     .ToList();
  131.  
  132.                 switch (commandAsList[0])
  133.                 {
  134.                     case "add":
  135.  
  136.                         numbers.Add(int.Parse(commandAsList[1]));
  137.                         counter++;
  138.                         break;
  139.  
  140.                     case "remove":
  141.  
  142.                         numbers.Remove(int.Parse(commandAsList[1]));
  143.                         counter++;
  144.                         break;
  145.  
  146.                     case "removeat":
  147.  
  148.                         numbers.RemoveAt(int.Parse(commandAsList[1]));
  149.                         counter++;
  150.                         break;
  151.  
  152.                     case "insert":
  153.  
  154.                         numbers.Insert(int.Parse(commandAsList[2]), int.Parse(commandAsList[1]));
  155.                         counter++;
  156.                         break;
  157.  
  158.                     case "contains":
  159.  
  160.                         if (numbers.Contains(int.Parse(commandAsList[1])))
  161.                         {
  162.                             Console.WriteLine("Yes");
  163.                         }
  164.  
  165.                         else
  166.                         {
  167.                             Console.WriteLine("No such number");
  168.                         }
  169.                         break;
  170.  
  171.                     case "printeven":
  172.                     case "printodd":
  173.  
  174.                         PrintEvenOrOddNumbers(numbers, commandAsList[0]);
  175.                         break;
  176.  
  177.                     case "getsum":
  178.  
  179.                         PrintSum(numbers);
  180.                         break;
  181.  
  182.                     case "filter":
  183.  
  184.                         printFilterredList(numbers, commandAsList[1], int.Parse(commandAsList[2]));
  185.                         break;
  186.                 }
  187.  
  188.                 //if (command == "insert" || command == "add" || command == "remove" || command == "removeat")
  189.                 //{
  190.                 //    counter++;
  191.                 //}
  192.             }
  193.  
  194.             if (counter != 0)
  195.             {
  196.                 Console.WriteLine(string.Join(" ", numbers));
  197.             }
  198.         }
  199.     }
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement