TwinFrame

LINQ_Tushenka

Dec 19th, 2020 (edited)
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Clight_42_LINQ_Tushenka
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. List<StewedMeat> stewedMeatList = new List<StewedMeat> { };
  12.  
  13. for (int i = 0; i < 15; i++)
  14. {
  15. StewedMeat stewedMeat = new StewedMeat();
  16. stewedMeatList.Add(stewedMeat);
  17. }
  18.  
  19. bool isWorks = true;
  20.  
  21. while (isWorks)
  22. {
  23. Console.CursorVisible = false;
  24. Console.Clear();
  25. Console.WriteLine("Склад тушенки.\n");
  26. Console.WriteLine("F1 - Найти просроченные банки.");
  27. Console.WriteLine("F2 - Выход.");
  28.  
  29. ConsoleKeyInfo key = Console.ReadKey();
  30.  
  31. switch (key.Key)
  32. {
  33.  
  34. case ConsoleKey.F1:
  35. Console.WriteLine("\nПросрочка: ");
  36. ShowExpiredStewedMeats(stewedMeatList);
  37. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  38. Console.ReadKey();
  39. break;
  40.  
  41. case ConsoleKey.F2:
  42. isWorks = false;
  43. break;
  44.  
  45. default:
  46. break;
  47. }
  48. }
  49. }
  50.  
  51. public static void ShowExpiredStewedMeats(List<StewedMeat> stewedMeats)
  52. {
  53. List<StewedMeat> ExpiredStewedMeats = stewedMeats.Where(stewedMeat =>
  54. (2020 - stewedMeat.ManufactureYear) > stewedMeat.ExpirationDate).OrderBy(stewedMeat => stewedMeat.ManufactureYear).ToList();
  55.  
  56. foreach (var expiresStewedMeats in ExpiredStewedMeats)
  57. {
  58. expiresStewedMeats.ShowInfo();
  59. }
  60. }
  61. }
  62.  
  63. class StewedMeat
  64. {
  65. Random random = new Random();
  66.  
  67. public int ManufactureYear { get; private set; }
  68. public int ExpirationDate { get; private set; }
  69.  
  70. private string _name;
  71.  
  72. public StewedMeat(int expirationDate = 10, string name = "Тушёнка фирменная")
  73. {
  74. _name = name;
  75. ExpirationDate = expirationDate;
  76. ManufactureYear = random.Next(1990, 2021);
  77. }
  78.  
  79. public void ShowInfo()
  80. {
  81. Console.WriteLine($"{_name}, Дата выпуска: {ManufactureYear} год, Срок годности: {ExpirationDate} лет.");
  82. }
  83. }
  84. }
Add Comment
Please, Sign In to add comment