Terepjárók LINQ megoldás

 K. Levi megoldása alapján

using System;

using System.Collections.Generic;

using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TZ
{
    class Terepjaro
    {
        public string MarkaEsModell { get; set; }
        public int Evjarat { get; set; }
        public string UzemanyagTipus { get; set; }
        public double Tomeg { get; set; }
        public string HajtasTipus { get; set; }
        public string Kepesseg { get; set; }
        public double KgAtvaltFont {
            get => Tomeg * 2.20462;
        }

        public Terepjaro(string sor)
        {
            var adat = sor.Split(";");
            MarkaEsModell = adat[0];
            Evjarat = int.Parse(adat[1]);
            UzemanyagTipus = adat[2];
            Tomeg = double.Parse(adat[3]);
            HajtasTipus = adat[4];
            Kepesseg = adat[5];
        }

        public override string ToString()
        {
            return $"Márka és Modell: {MarkaEsModell}, " +
                $"Évjárat: {Evjarat}, " +
                $"Uzemanyag típus: {UzemanyagTipus}, " +
                $"Tömeg: {Tomeg}, " +
                $"Hajtás típus: {HajtasTipus}, " +
                $"Képesség: {Kepesseg}";
        }
    }
}


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace Kozma_Levente_TZ_20231016
{
    class Program
    {
        private static readonly List<Terepjaro> terepjarok = new();
        private static List<Terepjaro> osszkereskesTerepjarok = new();
        static void Main(string[] args)
        {   //src mappában legyenek a fájlok
            using (StreamReader r = new(path: "terepjarok.txt"))
            {
                while (!r.EndOfStream)
                    terepjarok.Add(new Terepjaro(r.ReadLine()));
            }

            // 7. Feladat
            Console.WriteLine("7. Feladat");
            for (int i = 0; i < 3; i++)
                Console.WriteLine(terepjarok[i]);

            // 9. Feladat
            Console.WriteLine("9. Feladat");
            Console.WriteLine($"A Toyota terepjárók átlagos tömege: {TerepjaroTomegAtlag("Toyota")}");

            // 10. Feladat
            Console.WriteLine("10. Feladat");
            osszkereskesTerepjarok = terepjarok.Where(t => t.Evjarat > 2019 && t.HajtasTipus.Equals("Összkerékhajtás")).ToList();
            Console.WriteLine($"Összesen {OsszkerekesTerepjarokSzama()}db összkerekes terepjáró van 2019 után.");

            // 11. Feladat
            foreach (var i in LegkonyebbTerepjaro())
                Console.WriteLine(i);

            // 12. Feladat
            Console.WriteLine("12. Feladat");
            Console.WriteLine(HibridDizel());

            // 13. Feladat
            Console.WriteLine("13. Feladat");
            HajtasKereso("Összkerékhajtás").ForEach(t => Console.WriteLine(t)); //szép!

            // 15. Feladat
            using (StreamWriter w = new(path: "ujTerepjarok.txt"))
            {
                terepjarok.ForEach(t => w.WriteLine($"{t.MarkaEsModell};{t.Evjarat};{t.KgAtvaltFont}"));
            }

            // 16. Feladat
            var min = 0;
            var max = 0;
            LegkonyebbEsnehezebb(ref min, ref max);
            Console.WriteLine($"Legkönyebb terepjáró indexe: {min}, Legnehezebb {max}");
        }

        private static double TerepjaroTomegAtlag(string markaNev)
        {
            return Math.Round(terepjarok.Where(t => t.MarkaEsModell.Contains(markaNev)).Average(t => t.Tomeg));
        }

        private static int OsszkerekesTerepjarokSzama()
        {
            return osszkereskesTerepjarok.Count;
        }

        private static Terepjaro[] LegkonyebbTerepjaro()
        {
            return terepjarok
                .Where(t1 => t1.Tomeg.Equals(terepjarok.Min(t2 => t2.Tomeg)))
                .ToArray();
        }

        private static string HibridDizel()
        {
            var hibrid = terepjarok.Where(t1 => t1.UzemanyagTipus.Equals("Hibrid")).ToArray();
            var dizel = terepjarok.Where(t2 => t2.UzemanyagTipus.Equals("Dízel")).ToArray();

            var auto = hibrid.Where(h => h.Evjarat < dizel.Max(d => d.Evjarat)).FirstOrDefault();
            return auto == null ? "Nincs ilyen" : auto.ToString();
        }

        private static List<Terepjaro> HajtasKereso(string hajtas)
        {
            return terepjarok.Where(t => t.HajtasTipus.Equals(hajtas)).ToList();
            //vagy
            //return terepjarok.Where(t => t.HajtasTipus == hajtas).ToList();
        }

        private static void LegkonyebbEsnehezebb(ref int minS, ref int maxS)
        {
            var min = terepjarok.Min(t => t.Tomeg);
            var max = terepjarok.Max(t => t.Tomeg);

            for (int i = 0; i < terepjarok.Count; i++)
            {
                if (min == terepjarok[i].Tomeg) minS = i + 1;
                if (max == terepjarok[i].Tomeg) maxS = i + 1;
            }
        }
    }
}

Versenymotorok alap szintű megoldás

  namespace MotorokAlap

{
    class Motor
    {
        public string Gyarto { get; set; }
        public string Modell { get; set; }
        public int MaximalisSebesseg { get; set; }
        public double UzemanyagFogyasztas { get; set; }
        public int Hengerurtartalom { get; set; }
        public string KerekfelfuggesztésTipus { get; set; }

        public Motor(string sor)
        {
            string[] adatok = sor.Split(';');
            Gyarto = adatok[0];
            Modell = adatok[1];
            MaximalisSebesseg = int.Parse(adatok[2]);
            UzemanyagFogyasztas = double.Parse(adatok[3]);
            Hengerurtartalom = int.Parse(adatok[4]);
            KerekfelfuggesztésTipus = adatok[5];
        }

        public override string ToString()
        {
            return $"Gyártó: {Gyarto}\nModell: {Modell}\nMaximális Sebesség: {MaximalisSebesseg} km/h\nÜzemanyagfogyasztás: {UzemanyagFogyasztas} liter/100 km\nHengerűrtartalom: {Hengerurtartalom} cc\nKerékfelfüggesztés típusa: {KerekfelfuggesztésTipus}\n";
        }

        public double LiterbolGallonba()
        {
            return UzemanyagFogyasztas * 0.264172;
        }
    }
}


using System;
using System.Collections.Generic;
using System.IO;

namespace MotorokAlap
{
    class Program
    {
        static void Main()
        {
            List<Motor> motorok = new();
            using (StreamReader sr = new StreamReader(@"..\..\..\src\motorok.txt"))
            {
                while (!sr.EndOfStream)
                {
                    motorok.Add(new Motor(sr.ReadLine()));
                }
            }

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(motorok[i]);
            }

            Console.WriteLine("9.\n");
            Console.WriteLine($"Átlagos sebesség: {Math.Round(AtlagSebesseg(motorok))} km/h");            

            Console.WriteLine("10.\n");
            List<Motor> yamahaLista = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Yamaha" && motor.Hengerurtartalom > 1000)
                {
                    yamahaLista.Add(motor);
                }
            }
            Console.WriteLine($"{Yamaha1000felett(yamahaLista)} 1000 cc fölötti Yamaha motor van.");
           

            Console.WriteLine("11.Legkisebb fogyasztású motorok:\n");
            var kicsi = LegkisebbFogyasztasuMotor(motorok);
            foreach (var motor in kicsi)
            {
                Console.WriteLine(motor);
            }

            Console.WriteLine("12.Honda motorok, melyeknek fogyasztása kisebb, mint a legnagyobb Suzuki modellé:\n");
            List<Motor> hondaSuzuki = HondaSuzuki(motorok);
            if (hondaSuzuki.Count == 0)
            {
                Console.WriteLine("Nincs olyan Honda motor, aminek a fogyasztása kisebb, mint a legnagyobb Suzuki modellé.");
            }
            else
            {
                Console.WriteLine(hondaSuzuki[0]);
            }

            Console.WriteLine("13.BMW márkájú motorok vagy 300 km/h feletti maximális sebességű motorok:\n");
            foreach (var item in KivalogatoBMW(motorok))
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("15.Fájlba írás\n");

            using (StreamWriter writer = new StreamWriter(@"..\..\..\src\motorok_gallon.txt"))
            {
                foreach (var motor in motorok)
                {
                    writer.WriteLine($"{motor.Gyarto};{motor.Modell};{motor.LiterbolGallonba()} gallon/100 km");
                }
            }
        }

        static double AtlagSebesseg(List<Motor> motorok)
        {
            double osszeg = 0;
            foreach (var motor in motorok)
            {
                osszeg += motor.MaximalisSebesseg;
            }
            return osszeg / motorok.Count;
        }

        static int Yamaha1000felett(List<Motor> yamaha)
        {
            return yamaha.Count;
        }

        static List<Motor> LegkisebbFogyasztasuMotor(List<Motor> motorok)
        {
            double minFogyasztas = motorok[0].UzemanyagFogyasztas;
            foreach (var motor in motorok)
            {
                if (motor.UzemanyagFogyasztas < minFogyasztas)
                {
                    minFogyasztas = motor.UzemanyagFogyasztas;
                }
            }

            List<Motor> kisFogyasztasuMotorok = new();
            foreach (var motor in motorok)
            {
                if (motor.UzemanyagFogyasztas == minFogyasztas)
                {
                    kisFogyasztasuMotorok.Add(motor);
                }
            }
            return kisFogyasztasuMotorok;
        }

        static List<Motor> HondaSuzuki(List<Motor> motorok)
        {
            Motor legnagyobbSuzuki = motorok[0];
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Suzuki" && motor.Hengerurtartalom > legnagyobbSuzuki.Hengerurtartalom)
                {
                    legnagyobbSuzuki = motor;
                }
            }

            List<Motor> honda = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Honda" && motor.UzemanyagFogyasztas < legnagyobbSuzuki.UzemanyagFogyasztas)
                {
                    honda.Add(motor);
                }
            }
            return honda;
        }

        static List<Motor> KivalogatoBMW(List<Motor> motorok)
        {
            List<Motor> bmw = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "BMW" || (motor.Gyarto != "BMW" && motor.MaximalisSebesseg > 300))
                {
                    bmw.Add(motor);
                }
            }
            return bmw;
        }        
    }
}

Repülők LINQ megoldás

 Kevin megoldása alapján

 using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace arpaskTZ
{
    class Repulogep
    {
        public string GyartoModell { get; set; }
        public int Evjarat { get; set; }
        public string MotorTipus { get; set; }
        public int UtasSzam { get; set; }
        public int HatoTav { get; set; }
        public int UtazasiMagassag { get; set; }
        public double UtazasiMagassagKmben
        {
            get
            {
                return (double)UtazasiMagassag / 1000;
            }
        }

        public Repulogep(string sor)
        {
            var r = sor.Split(";");
            GyartoModell = r[0];
            Evjarat = int.Parse(r[1]);
            MotorTipus = r[2];
            UtasSzam = int.Parse(r[3]);
            HatoTav = int.Parse(r[4]);
            UtazasiMagassag = int.Parse(r[5]);
        }

        public override string ToString() => $"{GyartoModell}, {Evjarat}, {MotorTipus}, {UtasSzam}, {HatoTav}, {UtazasiMagassag}";
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace arpaskTZ
{
    class Fuggvenyek
    {
        public static double AtlagEvjarat(List<Repulogep> repulogepek)
        {
            return repulogepek
                .Average(r => r.Evjarat);
        }

        public static double MaxUtasSzam500(List<Repulogep> repulogepek)
        {
            return repulogepek.Count;
        }

        public static List<Repulogep> LegnagyobbHatotav(List<Repulogep> repulogepek)
        {
            int legnagyobbHatotavolsag = repulogepek
                .OrderByDescending(r => r.HatoTav)
                .Select(r => r.HatoTav)
                .First();

            return repulogepek
                .Where(r => r.HatoTav == legnagyobbHatotavolsag)
                .ToList();
        }

        public static List<Repulogep> KicsiBoeing(List<Repulogep> repulogepek)
        {
            var legregebbiAirBus = repulogepek
                .Where(r => r.GyartoModell.StartsWith("Airbus"))
                .OrderBy(r => r.Evjarat)
                .First();

            return repulogepek
                .Where(r => r.UtasSzam < legregebbiAirBus.UtasSzam && r.GyartoModell.StartsWith("Boeing"))
                .ToList();
        }

        public static List<Repulogep> AlcsonyanSzall(List<Repulogep> repulogepek)
        {
            return repulogepek
                .Where(r => r.UtazasiMagassag < 6000)
                .ToList();
        }

        public static (Repulogep legkisebb, Repulogep legnagyobb, bool ugyanazE) LegnagyobbLegkisebb(List<Repulogep> repulogepek)
        {
            var legkisebbHatotavu = repulogepek
                .OrderBy(r => r.HatoTav)
                .First();

            var legnagyobbHatotavu = repulogepek
                .OrderByDescending(r => r.HatoTav)
                .First();

            bool vanE = legkisebbHatotavu.GyartoModell == legnagyobbHatotavu.GyartoModell;

            return (legkisebbHatotavu, legnagyobbHatotavu, vanE);
        }
    }
}

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace arpaskTZ
{
    class Program
    {
        static void Main(string[] args)
        {
            var repulogepek = new List<Repulogep>();

            try
            {
                using var sr = new StreamReader(@"..\..\..\src\repulogepek.txt", Encoding.UTF8);

                while (!sr.EndOfStream)
                {
                    repulogepek.Add(new Repulogep(sr.ReadLine()));
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Nem található a file");
            }

            foreach (var r in repulogepek)
            {
                Console.WriteLine(r);
            }

            Console.WriteLine("9. feladat");

            Console.WriteLine($"A repülők átlagos évjárata: {Math.Round(Fuggvenyek.AtlagEvjarat(repulogepek))}");

            Console.WriteLine("10. feladat");

            var f10 = repulogepek
                .Where(r => r.UtasSzam > 500)
                .ToList();

            Console.WriteLine($"{Fuggvenyek.MaxUtasSzam500(f10)} olyan repülőgép van, aminek utasszáma meghaladja az 500-at");

            Console.WriteLine("11. feladat");

            var f11Lista = Fuggvenyek.LegnagyobbHatotav(repulogepek);

            foreach (var f in f11Lista)
            {
                Console.WriteLine(f);
            }

            Console.WriteLine("12. feladat");

            var kicsiBoeingek = Fuggvenyek.KicsiBoeing(repulogepek);

            if (kicsiBoeingek.Count != 0)
            {
                Console.WriteLine(kicsiBoeingek[0]);
            }
            else
            {
                Console.WriteLine("Nincs ilyen Boeing");
            }

            Console.WriteLine("13. feladat");

            var alacsonyanSzallnak = Fuggvenyek.AlcsonyanSzall(repulogepek);

            foreach (var a in alacsonyanSzallnak)
            {
                Console.WriteLine(a);
            }

            Console.WriteLine("15. feladat");
            using var sw = new StreamWriter(@"..\..\..\src\valami.txt", false, Encoding.UTF8);
            {
                foreach (var r in repulogepek)
                {
                    sw.WriteLine($"{r.GyartoModell}, {r.UtazasiMagassagKmben}");
                }
            }
            Console.WriteLine("Fájlba írás kész.");

            Console.WriteLine("16. feladat");

            var (legkisebb, legnagyobb, vanE) = Fuggvenyek.LegnagyobbLegkisebb(repulogepek);

            Console.WriteLine(legkisebb);

            Console.WriteLine(legnagyobb);

            Console.WriteLine($"{(vanE ? "Ugyanaz" : "Nem ugyanaz")} a legkisebb és a legnagyobb hatótávú repülő gyártója");

            Console.ReadKey();
        }
    }
}

2024.02.15.-16. Helyettesítés

 Adatbázis: vizsgaremek adatbázisának befejezése teljesen készre, dokumentáció kiegészítése, befejezése. Vizsgaremek felületének megvalósítá...