Diskuze: procházení listu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Neregistrovaný

Zobrazeno 9 zpráv z 9.
//= 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.
Předpokládám že uživatele máš jako Objekt Uzivatel, kde máš tyto vlastnosti. Poté tedy projet cyklem, přes Foreach list. A když to je muž přičteš si hodnotu nebo někam zaznamenáš jeho věk.
Takže třída bude vypadat nějak takto. Napíšu to zjednodušeně, časem se snad naučíš to napsat líp
class Uzivatel
{
// místo ošklivých public by se měly použít Properties - Vlasnosti
public int vek;
public string jmeno;
public bool muz; // místo bool by se mělo použít Enum
// další si dopiš
public Uzivatel(string jmeno,int vek,bool muz)
{
this.vek = vek;
this.jmeno = jmeno;
this.muz = muz;
}
}
// někde v metodě main nebo jinde
//testovací data
List<Uzivatel> uzivatele = new List<Uzivatel>();
uzivatele.Add(new Uzivatel("Pepa",15,true));
uzivatele.Add(new Uzivatel("Alžběta", 15, false));
uzivatele.Add(new Uzivatel("jakub", 35, true));
uzivatele.Add(new Uzivatel("Jaroslav", 58, true));
uzivatele.Add(new Uzivatel("Anna", 68, false));
uzivatele.Add(new Uzivatel("Blažena", 15, false));
uzivatele.Add(new Uzivatel("Hermelina", 25, false));
int pocet = 0;
int soucet = 0;
// iterace uživateli
foreach (Uzivatel p in uzivatele)
{
if (p.muz == true) // je to muž ?
{
pocet++;
soucet += p.vek;
}
}
Console.WriteLine(soucet/pocet);
Pokud něčemu z tohoto nerozumíš, což předpokládám, podívej se na zdejší seriál. zační základy a pak přejdi na OOP
List mam vytvořený, tak jak uvádíš, jen tam mám muže nebo ženu definované pomocí stringu, takže jsem zkoušel udělat podmínku:
if (uzivatele[0] == "muz")
protože na [0] pozici v listu mam pohlaví a pak jsem chtěl ukládat hodnotu věk na pozici[3] pomocí int.Parse do pole s kterým bych dál pracoval, ale tohle vypadá jednodušeji, navíc mi to s tím indexováním moc nešlo
Pošli tvůj kod, trošku nerozumím tomu, že máš na nějaké pozici věk
atd ... takový to byl případ, kdyby jsi to měl v poli.
Minimálně bys to měl mít jak píše Zirko, takže pošli tvůj kod ať ti
můžem popřípadě poradit
To ano, ale ty indexuješ ty jednotlivé uživatele, když vezmu kousek kodu od Zirka, tak je to
("Anna", 68, false) // 0
("Blažena", 15, false) // 1
("Hermelina", 25, false) // 2
A ty k těm uživatelům přistupuješ k celým těm datům a k jednotlivým položkám jako jméno, věk atd přistupuješ přes tu tečkovou notaci a dostáváš se k těm property té třídy
Samozřejmě že má indexasi stejnou Ale je blbost dělat list kde budeš mít jméno,věk, muž/žěna, a
pak zase jméno, věk .. nevyznáš se v tom. Proto tu máme OOP . Vytvoříš
si objekt a vlistu budeš mít tyto objekty. Něco málo si o to zde přečti a
pochopíš k čemu to je
Zobrazeno 9 zpráv z 9.