Diskuze: Sečtení hodnot v Listu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ano nebou použít LINQ ale stačí klasický cyklus. Tedy proiteruješ každé auto a do nějaké proměnné (celkový součet) přičteš hodnotu auta. nakonec to vypíšeš.
Ta metoda VypisCenuAut je v jaké třídě ? Pokud v objektu Auto, tak je to špatně. Jedno Auto nemůže vypsat cenu ostatních
čau, jelikož máš list plnej třídy auto, předpokládám že ve třídě budeš mít nějakou metodu "getSum" která vrací hodnotu ceny auta. Potom je to jednoduché.
public double getCarsSum(List<Auto> cars){
double sum = 0;
foreach(Auto car in cars)
sum += car.getSum();
return sum;
}
// a tady ta tvoje metoda na vypsání
public void VypisCenuAut(){
Console.WriteLine("Celková hodnota aut v bazaru je : " + getCarsSum(auta) + "kč!");
}
Nebude jednodušší zdědit IEnumerable, či jinou podobnou generiku, dát tam metodu CostAll - a tu naplnit rekurzivně každým Itemem?
Tedy každý Item bude mít metodu z interface pro poslání své hodnoty - v onom listu pak bude stačit zavolat jedinou metodu...
Měl jsi ho to nehcat napsat sám Takhle to akorát zkopíruje Věděl jak na to Jenom se patl jestli to nejde napsat na jeden řádek.
Můžeš také použít LINQ
class Auto
{
public int Cena { get; private set; }
public Auto(int cena)
{
this.Cena = cena;
}
}
// main
List<Auto> list = new List<Auto>();
foreach (int i in Enumerable.Range(0, 10))
list.Add(new Auto(i * 10));
Console.WriteLine(list.Sum(x => x.Cena));
Cyklem foreach si vytvořím 9 aut a nastavím jim cenu i*10 - výsledek 450
nejsem bohužel na takové úrovní v OOP jako vy.... takže to musím řešit nějakou jednoduchou ( pro mě )cestou..... a ano radši bych na to přišel sám, jenom potřebuju popostčit správným směrem a mohužel většinu z toho co jsem mi poradili ani neznám
zase spadni nohama na zem, už vidím jak to bude dávat dohromady člověk co si neví rady s foreach cylem ^^
v tom případě nevím proč sem píšeš že nevíš jak se to dělá
takhle by to taky šlo ?
class Autobazar
{
public string Adresa { get; set; }
public int Pokladna { get; set; }
public List<Auto> auta = new List<Auto>();
public Autobazar(string adresa, int pokladna)
{
Adresa = adresa;
this.Pokladna = pokladna;
}
public void PridejAuto(Auto auto)
{
if (auto.Cena <= Pokladna)
{
auta.Add(auto);
Pokladna -= auto.Cena;
}
}
public void ProdejAuto(Auto auto)
{
auta.Remove(auto);
Pokladna += auto.Cena;
}
public void VypisCenuAut()
{
Console.WriteLine("Celková hodnota aut v bazaru je: {0} kč.", auta.Sum(x => x.Cena));
}
}
Zobrazeno 14 zpráv z 14.