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

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

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

namespace ConsoleApplication5
{
    public class Program
    {
        static void Main(string[] args)
        {
            var passangers = GetAll();
 
            var passangersCount = ExtraBaggage(passangers);
            Console.WriteLine($"Количество пассажиров имеющих более двух вещей: {passangersCount}");
 
            var hasHeavyBaggage = HeavyBaggage(passangers);
            Console.WriteLine($"Пассажир с багажем более 25 кг: {hasHeavyBaggage}");
 
            var moreThenAvgBaggareWeigth = Baggage3(passangers);
            Console.Write("Число пассажиров, у которых количество вещей превосходит среднее число вещей всех пассажиров:");
            Console.WriteLine(moreThenAvgBaggareWeigth);
 
            var passangerIdWithAvg = Baggage4(passangers);
            Console.WriteLine($"Номер пассажира, в багаже которого средний вес одной вещи отличается от общего среднего веса одной вещи не более чем на 0,5 кг: {passangerIdWithAvg}");
            Console.ReadLine();
        }

        private static int ExtraBaggage(IEnumerable<Passanger> passangers)
        {
            return passangers.Count(p => p.Baggages.Count > 2);
        }

        private static bool HeavyBaggage(IEnumerable<Passanger> passangers)
        {
            return passangers.Any(p => p.Baggages.Any(b => b.Weigth > 25));
 
        }

        private static int Baggage3(IEnumerable<Passanger> passangers)
        {
            return passangers.Count(p => p.Baggages.Count > passangers.Average(ps => ps.Baggages.Count));
        }

        private static int Baggage4(IEnumerable<Passanger> passangers)
        {
            var passanger = passangers.FirstOrDefault(p => Math.Abs(p.Baggages.Average(b => b.Weigth) - passangers.SelectMany(ps => ps.Baggages).Average(bg => bg.Weigth)) <= 0.5);
            return passanger?.Id ?? -1;
        }

        private static IEnumerable<Passanger> GetAll()
        {
            return new List<Passanger>
            {
                new Passanger
                {
                    Id = 1,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 0.5 },
                        new Baggage { Weigth = 5.0 },
                        new Baggage { Weigth = 3.1 }
                    }
                    ///8.6
                },new Passanger
                {
                    Id = 2,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 6.2 },
                        new Baggage { Weigth = 2.2 },
                        new Baggage { Weigth = 10.1 },
                        new Baggage { Weigth = 0.4 }
                    }
                    ///18.9
                },new Passanger
                {
                    Id = 3,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 0.3 },
                        new Baggage { Weigth = 6.9 }
                    }
                    ///7.2
                },new Passanger
                {
                    Id = 4,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 15.0 }
                    }
                },new Passanger
                {
                    Id = 5,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 3.5 },
                        new Baggage { Weigth = 7.2 },
                        new Baggage { Weigth = 6.9 }
                    }
                    ///17.6
                },new Passanger
                {
                    Id = 6,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 9.5 },
                        new Baggage { Weigth = 4.1 },
                        new Baggage { Weigth = 1.3 }
                    }
                    ///14.9
                },new Passanger
                {
                    Id = 7,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 31.1 },
                        new Baggage { Weigth = 1.2 },
                        new Baggage { Weigth = 7.2 }
                    }
                    ///39.5
                },new Passanger
                {
                    Id = 8,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 4.2 },
                        new Baggage { Weigth = 9.1 }
                    }
                    ///13.3
                },new Passanger
                {
                    Id = 9,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 6.1 },
                        new Baggage { Weigth = 3.1 }
                    }
                    ///9.2
                },new Passanger
                {
                    Id = 10,
                    Baggages = new List<Baggage>
                    {
                        new Baggage { Weigth = 0.5 },
                        new Baggage { Weigth = 3.1 }
                    }
                    ///3.6
                },
            };
        }
    }

    public class Passanger
    {
        public int Id { get; set; }
     
        public ICollection<Baggage> Baggages { get; set; }
 
        public Passanger()
        {
            Baggages = new List<Baggage>();
        }
    }

    public class Baggage
    {
    
        public double Weigth { get; set; }
    }
}
особенно непонятно IEnumerable
48 ( return passanger?.Id ?? -1; )

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

textual
Листинг программы
    public class Passanger
    {
        public int Id { get; set; }
     
        public ICollection<Baggage> Baggages { get; set; }
 
        public Passanger()
        {
            Baggages = new List<Baggage>();
        }
    }

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


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

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

12   голосов , оценка 3.667 из 5
Похожие ответы