Advertisement
SPavelA

LinqTask5ExpiredCannedFoods

Nov 14th, 2024 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.91 KB | Gaming | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace LinqTask5ExpiredCannedFood
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             FoodStore foodStore = new FoodStore();
  12.  
  13.             foodStore.ShowExpiredCannedFoods();
  14.         }
  15.     }
  16.  
  17.     public class FoodStore
  18.     {
  19.         const int YearNow = 2024;
  20.  
  21.         private List<CannedFood> _cannedFoods = new List<CannedFood>();
  22.  
  23.         public FoodStore()
  24.         {
  25.             FillCannedFoods();
  26.         }
  27.  
  28.         public void ShowExpiredCannedFoods()
  29.         {
  30.             Console.WriteLine("Все консервы:");
  31.             ShowCannedFoods(_cannedFoods);
  32.  
  33.             List<CannedFood> expiredCannedFoods = _cannedFoods.Where(
  34.                 cannedFood =>  cannedFood.BirthYear + cannedFood.LifeLength < YearNow).ToList();
  35.  
  36.             Console.WriteLine("\nИз них просроченные:");
  37.             ShowCannedFoods(expiredCannedFoods);
  38.             Console.WriteLine();
  39.         }
  40.  
  41.         private void ShowCannedFoods(List<CannedFood> cannedFoods)
  42.         {
  43.             foreach(var cannedFood in cannedFoods)
  44.             {
  45.                 cannedFood.ShowInfo();
  46.             }
  47.         }
  48.  
  49.         private void FillCannedFoods()
  50.         {
  51.             const int MinimumBirthYear = 2000;
  52.             const int MinimumLifeLength = 3;
  53.             const int MaximumLifeLength = 20;
  54.  
  55.             string[] names = new string[] {
  56.                 "коровка",
  57.                 "барашка",
  58.                 "курочка",
  59.                 "индеечка",
  60.                 "сосиська",
  61.                 "свинное ушко",
  62.                 "собачья жопка",
  63.                 "кошачий язык",
  64.                 "мышиные яйца",
  65.                 "голубиные головы",
  66.                 "китовые жабры",
  67.                 "дреска",
  68.                 "птеродактель"
  69.             };
  70.             Random random = new Random();
  71.  
  72.             foreach (string name in names)
  73.             {
  74.                 _cannedFoods.Add(new CannedFood(name,
  75.                                 random.Next(MinimumBirthYear, YearNow),
  76.                                 random.Next(MinimumLifeLength, MaximumLifeLength)));
  77.             }
  78.         }
  79.     }
  80.  
  81.     public class CannedFood
  82.     {
  83.         private string _name;
  84.  
  85.         public CannedFood(string name, int birthYear, int lifeLength)
  86.         {
  87.             _name = name;
  88.             BirthYear = birthYear;
  89.             LifeLength = lifeLength;
  90.         }
  91.  
  92.         public int BirthYear { get; private set; }
  93.         public int LifeLength { get; private set; }
  94.  
  95.         public void ShowInfo()
  96.         {
  97.             Console.WriteLine($"{_name}, год производства: {BirthYear}, срок годности: {LifeLength}");
  98.         }
  99.     }
  100. }
  101.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement