Advertisement
TwinFrame

WeaponReport

Dec 19th, 2020
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Clight_43_LINQ_WeaponsReport
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Random random = new Random();
  12.  
  13. List<string> names = new List<string> { "Иван", "Владимир", "Григорий", "Генадий", "Вадим",
  14. "Игорь", "Евгений", "Владислав", "Егор", "Руслан", "Сергей", "Кирилл" };
  15.  
  16. List<string> weapons = new List<string> { "Пистолет", "Автомат", "Гранатомет", "Святая овца" };
  17.  
  18. List<string> ranks = new List<string> { "Рядовой", "Ефрейтор", "Сержант", "Старшина" };
  19.  
  20. List<Soldier> soldiers = new List<Soldier> { };
  21.  
  22. for (int i = 0; i < 6; i++)
  23. {
  24. string tempName = names[random.Next(0, names.Count)];
  25. string tempWeapon = weapons[random.Next(0, weapons.Count)];
  26. string tempRank = ranks[random.Next(0, ranks.Count)];
  27. int tempServiceLife = random.Next(1, 11);
  28.  
  29. Soldier tempSoldier = new Soldier(tempName, tempWeapon, tempRank, tempServiceLife);
  30. soldiers.Add(tempSoldier);
  31. }
  32.  
  33. bool isWorks = true;
  34.  
  35. while (isWorks)
  36. {
  37. Console.CursorVisible = false;
  38. Console.Clear();
  39. Console.WriteLine("F1 - Показать список солдат.");
  40. Console.WriteLine("F2 - Выход.");
  41.  
  42. ConsoleKeyInfo key = Console.ReadKey();
  43.  
  44. switch (key.Key)
  45. {
  46.  
  47. case ConsoleKey.F1:
  48. Console.WriteLine("\nCписок солдат (Имя, Звание): ");
  49. ShowFilteredInfo(soldiers);
  50.  
  51.  
  52. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  53. Console.ReadKey();
  54. break;
  55.  
  56. case ConsoleKey.F2:
  57. isWorks = false;
  58. break;
  59.  
  60. default:
  61. break;
  62. }
  63. }
  64. }
  65.  
  66. public static void ShowFilteredInfo(List<Soldier> soldiers)
  67. {
  68. var selectedFieldsBySoldiers = from Soldier soldier in soldiers
  69. orderby soldier.Name
  70. select (soldier.Name, soldier.Rank);
  71.  
  72. foreach (var soldier in selectedFieldsBySoldiers)
  73. {
  74. Console.WriteLine($"{soldier.Name}, {soldier.Rank}");
  75. }
  76. }
  77. }
  78.  
  79. class Soldier
  80. {
  81. public string Name { get; private set; }
  82. public string Weapon { get; private set; }
  83. public string Rank { get; private set; }
  84. public int ServiceLife { get; private set; }
  85.  
  86. public Soldier(string name, string weapon, string rank, int serviceLife)
  87. {
  88. Name = name;
  89. Weapon = weapon;
  90. Rank = rank;
  91. ServiceLife = serviceLife;
  92. }
  93. }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement