Advertisement
yanchevilian

Filter By Age / C# Advanced

Sep 6th, 2021
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.98 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security;
  5.  
  6. namespace _5._Filter_by_Age
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             Func<(string name, int age), int, bool> youngerFunc = (person, age) => person.age < age;
  13.             Func<(string name, int age), int, bool> olderFunc = (person, age) => person.age >= age;
  14.  
  15.             int n = int.Parse(Console.ReadLine());
  16.             List<(string name, int age)> people = new List<(string name, int age)>();
  17.  
  18.             for (int i = 0; i < n; i++)
  19.             {
  20.                 string[] cmdArr = Console.ReadLine().Split(", ", StringSplitOptions.RemoveEmptyEntries);
  21.                 string name = cmdArr[0];
  22.                 int age = int.Parse(cmdArr[1]);
  23.  
  24.                 people.Add((name, age));
  25.             }
  26.  
  27.             string condition = Console.ReadLine();
  28.             int ageFilter = int.Parse(Console.ReadLine());
  29.             string[] printFilter = Console.ReadLine()
  30.                                     .Split(" ", StringSplitOptions.RemoveEmptyEntries);
  31.  
  32.             switch (condition)
  33.             {
  34.                 case "younger":
  35.                     people = people.Where(p => youngerFunc(p, ageFilter)).ToList();
  36.                     break;
  37.                 case "older":
  38.                     people = people.Where(p => olderFunc(p, ageFilter)).ToList();
  39.                     break;
  40.                 default:
  41.                     break;
  42.             }
  43.  
  44.             foreach (var person in people)
  45.             {
  46.                 List<string> output = new List<string>();
  47.                 if (printFilter.Contains("name"))
  48.                 {
  49.                     output.Add(person.name);
  50.                 }
  51.  
  52.                 if (printFilter.Contains("age"))
  53.                 {
  54.                     output.Add(person.age.ToString());
  55.                 }
  56.  
  57.                 Console.WriteLine(string.Join(" - ", output));
  58.             }
  59.         }
  60.     }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement