C# нужна помощь, потому что я не понимаю [закрыто] ⇐ C#

Место общения программистов C#
Anonymous
C# нужна помощь, потому что я не понимаю [закрыто]

Сообщение Anonymous »



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

namespace Autok
{
// Autó osztály, ami tárolja a jármű adatait
public class Auto
{
public string Marka { get; set; }
public string Modell { get; set; }
public string Kategoria { get; set; }
public string Szin { get; set; }

public Auto(string marka, string modell, string kategoria, string szin)
{
Marka = marka;
Modell = modell;
Kategoria = kategoria;
Szin = szin;
}
}

public class Program
{
// Lista, amiben az összes autó objektum tárolódik
static List autok = new List();

static void Main(string[] args)
{
try
{
// Beolvasás az "autok.txt" fájlból
using (StreamReader sr = new StreamReader("autok.txt"))
{
string sor;
while ((sor = sr.ReadLine()) != null)
{
string[] adatok = sor.Split(';'); // Pontosvesszővel elválasztva
if (adatok.Length == 4) // Csak akkor, ha pontosan 4 adat van
{
string marka = adatok[0];
string modell = adatok[1];
string szin = adatok[2];
string kategoria = adatok[3];
// Új Auto objektum létrehozása és hozzáadása a listához
autok.Add(new Auto(marka, modell, kategoria, szin));
}
}
}

Console.WriteLine($"Autók száma: {AutoSzam()}"); // Összes autó száma
Console.Write("Adjon meg egy autó márkát: ");
string markakereses = Console.ReadLine();

Modellek(markakereses); // Megadott márkához tartozó modellek listázása
SuvArany(); // SUV kategóriák arányának kiírása
MarkaEsModell(); // Márkák és darabszámuk megjelenítése
Szinek(); // Leggyakoribb szín kiírása
}
catch (Exception ex)
{
Console.WriteLine("Hiba történt: " + ex.Message); // Hiba kezelése
}
}

// Visszaadja az autók számát
private static int AutoSzam()
{
return autok.Count;
}

// Kiírja az adott márkához tartozó modelleket
private static void Modellek(string? marka)
{
var modellek = autok
.Where(a => a.Marka.Equals(marka, StringComparison.OrdinalIgnoreCase)) // Márka egyezés kis- és nagybetűtől függetlenül
.Select(a => a.Modell)
.Distinct()
.ToList();

if (modellek.Any())
{
Console.WriteLine("Modellek: " + string.Join(", ", modellek));
}
else
{
Console.WriteLine("Nem található ilyen márka az állományban!");
}
}

// Kiszámolja és kiírja, hogy az autók hány százaléka SUV
private static void SuvArany()
{
int suvDB = autok.Count(a => a.Kategoria.Equals("SUV", StringComparison.OrdinalIgnoreCase));
double arany = (double)suvDB / AutoSzam() * 100;
Console.WriteLine($"Az állományban szereplő autók {arany:F2}%-a SUV.");
}

// Kiírja a márkákat és darabszámukat
private static void MarkaEsModell()
{
var markak = autok
.GroupBy(a => a.Marka)
.Select(g => new { Marka = g.Key, Db = g.Count() });

foreach (var m in markak)
{
Console.WriteLine($"[{m.Marka}, {m.Db}]");
}
}

// Megkeresi és kiírja a leggyakoribb színt
private static void Szinek()
{
var legtobbszin = autok
.GroupBy(a => a.Szin)
.OrderByDescending(g => g.Count())
.FirstOrDefault();

if (legtobbszin != null)
{
Console.WriteLine($"Leggyakoribb szín: {legtobbszin.Key}");
}
}
}
}
< /code>
Я читаю данные автомобиля из файла, а затем считает различную статистику (например, количество всех автомобилей, коэффициент внедорожника, список конкретных моделей бренда). Программа не бросает ошибку, но некоторые методы не работают, как и ожидалось, например, модели или суварарани. Я не уверен, что данные обработаны или фильтрация верна. Можете ли вы помочь, где может быть ошибка или что можно улучшить?


Подробнее здесь: https://stackoverflow.com/questions/796 ... understand

Вернуться в «C#»