Diskuze: Cyklus foreach a List
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 12 zpráv z 12.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Je jasné, že jsi ji neinicializoval.. Inicializuj ji a bude to OK...
List<Kontakt> adresar = new List<Kontakt>();
A dosazuješ do ní hodnoty:
adresar.Add(new Kontakt(jmeno, prijmeni, vek, tel));
Ale lepší by bylo poslat celý kód - kdo ví, jestli je pro tvoji situaci vhodný List/pole/seznam/slovník...
Jo a používej modifikátory:
private List<Kontakt> adresar = new List<Kontakt>();
Dále _kontakt toto není vhodné pojmenování - znak _ nepoužívej.
Dík, úplně mi vypadlo, že se inicializuje takhle!:o
Ale jak píši, třeba pro tvoji situaci List vůbec není vhodný - raději bych viděl celý kód...
Je-li dlouhý:
Pokud je to seznam kontaktů, tak právě na to je List určen. Jakou jinou datovou strukturu bys chtěl použít? Slovník?
new Kontakt[] { new Kontakt() };
new List<Kontakt>() { new Kontakt() };
Až na to, že to druhé je dynamické...
To první není seznam, ale pole. Je nutné tyto datové struktury rozlišovat, každá se hodí k jinému účelu. Seznam kontaktů je něco jiného než pole kontaktů.
Pro seznam existují 3 základní funkce: map(), filter() a reduce(). Tyto funkce nejsou pro pole definovány. Pokud použiješ pole tam, kde je vhodný seznam, musíš je do programu dolepovat.
Když si to řekneš nahlas, tak to musíš slyšet.
Rozdíl je v tom, že pokud údaj má své pevné místo určené indexem (např. pixely ve foťáku nebo okurky na poli), jedná se o pole. Když jednu okurku utrhnu, ostatní se neposunou na její místo, ale to místo zůstane prázdné. Když z telefonního seznamu vyhodím bývalou přítelkyni, tak tam po ní nezbude díra, ale následující se posunou o jedno místo nahoru. Je to seznam.
V seznamu se dá vyhledávat, dá se řadit podle abecedy, dá se spojit do věty. S polem to udělat nelze, protože v poli má každý prvek své pevné místo dané indexem.
Zobrazeno 12 zpráv z 12.