C# listák

10. osztály 10évf_c# C# programozás Programozás

Lista

A lista használatához ne felejtsük el: Using.System.Collections.Generic

A lista olyan tömb gyakorlatilag, aminek változhat az elemszáma. A tömbökhöz képest annyi a különbség, hogy dinamikusan foglal memóriát, csak annyit, amennyi elemet tárol. A lista index-érték párokból áll. A lista elemeire az index vagy az érték segítségével hivatkozhatunk.

List<típus> listaneve = new List<típus>();

Műveletek listákon:

  • Egy listaelem hozzáadása: listaneve.Add(elem)
  • Listaelem törlése: listaneve.Remove(elem)
  • Adott indexű elem törlése: listaneve.RemoveAt(elemindexe)
  • Több elem hozzáadása a lista végéhez: AddRange(elemek)
  • Elem sorszáma: listaneve.IndexOf(elemindexe) Használható keresésre.
  • LastIndexOf
  • Lista ürítése: listaneve.Clear()
  • Sorba rendezés: Sort()
  • Fordított sorrend: Reverse() Ez nem rendez, csak fordított sorrend!
  • Egyezőség vizsgálata: Contains(elem)
  • Elemek száma: lista.Count
  • Lista kapacitása: lista.Capacity
  • Felesleges foglalás csökkentése: lista.TrimExcess()

List<double> szamok = new List<double>(); //lista létrehozása
szamok.Add(82); //elem hozzáadása

A lista elemszámát a Count tulajdonságával kérdezhetjük le (vektorok esetén a Length-t kellett használni). Ez általában is jellemző – aminek a mérete nem változik a futási idő alatt, annak Length-e van, aminek a mérete dinamikus, annak Count-ja. A lista elemeinek indexe [0,Count-1] közöttiek. Ha a lista üres (kezdetben, Count=0), akkor nincs 0-s sorszámú eleme sem. A lista i. elemét hasonló szintaktikával lehet elérni, mint vektorok esetén. A lista változó után szögletes zárójelben kell megadni az elem sorszámát.

A lista nem konstansokat tartalmaz, a listaelemek nem csak kiolvashatóak, hanem módosíthatóak is (mint a vektorok esetén).

Példa: Kérjünk be elemeket a listánkra, meghatározott jelig. Pl: 0 leütéséig. Írassuk ki a listánk elemeit, majd az elemek összegét! Töröljünk ki egy adott elemet, majd írassuk ki újra hány elemből áll a lista!

Példa 2.

Array list

Jellemzői
• Dinamikus elemszámú tömbök kezelését valósítja meg az ArrayList osztály.
• Eltérő típusok is lehetnek egyben: szöveg, karakter, logikai, szám
Névtér hozzáadása: using System.Collections;
• Az elemek ugyanúgy elérhetők index-szel, mint egy tömbnél.
• Deklarálása: ArrayList listaneve= new ArrayList();
• Capacity: a tartalmazható elemek számát írhatjuk ki.
• Count: a tényleges elemek számát olvashatjuk ki.
• Item: Lekéri vagy beállítja az elemet a megadott indexre

Az ArrayList főbb metódusai
Add: Hozzáad egy objektumot a lista végéhez.
Insert: Beszúr egy elemet a megadott indexhez.
Remove, RemoveAt, RemoveRange: törli az adott elemet
Sort: Rendezi az elemeket.

Gyakorlás listával:

Készíts listát, amelyben 5 db keresztnevet tárolsz!
– Kérj be a felhasználótól egy betűt.
– Hányszor szerepel az adott betű összesen a listában?
– Írd ki az első olyan nevet, amelyik ezzel a betűvel kezdődik!