Помогите разобраться в коде - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. namespace ConsoleApplication5
  2. {
  3. public class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. var passangers = GetAll();
  8. var passangersCount = ExtraBaggage(passangers);
  9. Console.WriteLine($"Количество пассажиров имеющих более двух вещей: {passangersCount}");
  10. var hasHeavyBaggage = HeavyBaggage(passangers);
  11. Console.WriteLine($"Пассажир с багажем более 25 кг: {hasHeavyBaggage}");
  12. var moreThenAvgBaggareWeigth = Baggage3(passangers);
  13. Console.Write("Число пассажиров, у которых количество вещей превосходит среднее число вещей всех пассажиров:");
  14. Console.WriteLine(moreThenAvgBaggareWeigth);
  15. var passangerIdWithAvg = Baggage4(passangers);
  16. Console.WriteLine($"Номер пассажира, в багаже которого средний вес одной вещи отличается от общего среднего веса одной вещи не более чем на 0,5 кг: {passangerIdWithAvg}");
  17. Console.ReadLine();
  18. }
  19.  
  20. private static int ExtraBaggage(IEnumerable<Passanger> passangers)
  21. {
  22. return passangers.Count(p => p.Baggages.Count > 2);
  23. }
  24.  
  25. private static bool HeavyBaggage(IEnumerable<Passanger> passangers)
  26. {
  27. return passangers.Any(p => p.Baggages.Any(b => b.Weigth > 25));
  28. }
  29.  
  30. private static int Baggage3(IEnumerable<Passanger> passangers)
  31. {
  32. return passangers.Count(p => p.Baggages.Count > passangers.Average(ps => ps.Baggages.Count));
  33. }
  34.  
  35. private static int Baggage4(IEnumerable<Passanger> passangers)
  36. {
  37. var passanger = passangers.FirstOrDefault(p => Math.Abs(p.Baggages.Average(b => b.Weigth) - passangers.SelectMany(ps => ps.Baggages).Average(bg => bg.Weigth)) <= 0.5);
  38. return passanger?.Id ?? -1;
  39. }
  40.  
  41. private static IEnumerable<Passanger> GetAll()
  42. {
  43. return new List<Passanger>
  44. {
  45. new Passanger
  46. {
  47. Id = 1,
  48. Baggages = new List<Baggage>
  49. {
  50. new Baggage { Weigth = 0.5 },
  51. new Baggage { Weigth = 5.0 },
  52. new Baggage { Weigth = 3.1 }
  53. }
  54. ///8.6
  55. },new Passanger
  56. {
  57. Id = 2,
  58. Baggages = new List<Baggage>
  59. {
  60. new Baggage { Weigth = 6.2 },
  61. new Baggage { Weigth = 2.2 },
  62. new Baggage { Weigth = 10.1 },
  63. new Baggage { Weigth = 0.4 }
  64. }
  65. ///18.9
  66. },new Passanger
  67. {
  68. Id = 3,
  69. Baggages = new List<Baggage>
  70. {
  71. new Baggage { Weigth = 0.3 },
  72. new Baggage { Weigth = 6.9 }
  73. }
  74. ///7.2
  75. },new Passanger
  76. {
  77. Id = 4,
  78. Baggages = new List<Baggage>
  79. {
  80. new Baggage { Weigth = 15.0 }
  81. }
  82. },new Passanger
  83. {
  84. Id = 5,
  85. Baggages = new List<Baggage>
  86. {
  87. new Baggage { Weigth = 3.5 },
  88. new Baggage { Weigth = 7.2 },
  89. new Baggage { Weigth = 6.9 }
  90. }
  91. ///17.6
  92. },new Passanger
  93. {
  94. Id = 6,
  95. Baggages = new List<Baggage>
  96. {
  97. new Baggage { Weigth = 9.5 },
  98. new Baggage { Weigth = 4.1 },
  99. new Baggage { Weigth = 1.3 }
  100. }
  101. ///14.9
  102. },new Passanger
  103. {
  104. Id = 7,
  105. Baggages = new List<Baggage>
  106. {
  107. new Baggage { Weigth = 31.1 },
  108. new Baggage { Weigth = 1.2 },
  109. new Baggage { Weigth = 7.2 }
  110. }
  111. ///39.5
  112. },new Passanger
  113. {
  114. Id = 8,
  115. Baggages = new List<Baggage>
  116. {
  117. new Baggage { Weigth = 4.2 },
  118. new Baggage { Weigth = 9.1 }
  119. }
  120. ///13.3
  121. },new Passanger
  122. {
  123. Id = 9,
  124. Baggages = new List<Baggage>
  125. {
  126. new Baggage { Weigth = 6.1 },
  127. new Baggage { Weigth = 3.1 }
  128. }
  129. ///9.2
  130. },new Passanger
  131. {
  132. Id = 10,
  133. Baggages = new List<Baggage>
  134. {
  135. new Baggage { Weigth = 0.5 },
  136. new Baggage { Weigth = 3.1 }
  137. }
  138. ///3.6
  139. },
  140. };
  141. }
  142. }
  143.  
  144. public class Passanger
  145. {
  146. public int Id { get; set; }
  147. public ICollection<Baggage> Baggages { get; set; }
  148. public Passanger()
  149. {
  150. Baggages = new List<Baggage>();
  151. }
  152. }
  153.  
  154. public class Baggage
  155. {
  156. public double Weigth { get; set; }
  157. }
  158. }
особенно непонятно IEnumerable
48 ( return passanger?.Id ?? -1; )

Решение задачи: «Помогите разобраться в коде»

textual
Листинг программы
  1.     public class Passanger
  2.     {
  3.         public int Id { get; set; }
  4.      
  5.         public ICollection<Baggage> Baggages { get; set; }
  6.  
  7.         public Passanger()
  8.         {
  9.             Baggages = new List<Baggage>();
  10.         }
  11.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы