A Lista adattípus

A Lista adott típusú elemek szekvenciája.

Igen, olyan, mint a tömb, vagy a string volt. Alapvető különbség a tömbbel szemben, hogy nem kell megadni az elemszámot, csak a típust.  

Eljárások

Tulajdonságok

Lista létrehozása, deklarálása

List <típus> elnevezés = new List<típus>();

Tehát tényleg olyan mint a tömb.

Például: List<string> nevek=new List<string>();  

Lista egy elemének elérése

Indexe alapján. Például az első eleme:

...
Console.WriteLine(nevek[0]);
... 

FIGYELEM! A sorszámozás itt is 0-val kezdődik!  

Lista bővítése

.Add(elem)

.Add(elem)  –  A lista végére beilleszt egy elemet.

Például elhelyezünk két nevet a listába, Teleki Blankát, és Radák Olgát :

nevek.Add("Teleki Blanka");
nevek.Add("Radák Olga");

Ha üres volt a lista, akkor így most nevek[0] lett Teleki Blanka, és nevek[1] Radák Olga.

.Insert(index,elem)

.Insert(index,elem)  – Az adott helyre beilleszt egy elemet    

Például Zirzen Jankát beillesztjük a 2. helyre (melynek indexe: 1)

nevek.Insert(1, "Zirzen Janka");

A fenti példa alapján a nevek lista most már három elemű, 0. Teleki Blanka; 1. Zirzen Janka; 2. Radák Olga

Lista elemszáma

.Count

A lista elemszámát a .Count tulajdonságán keresztül érhetjük el.

A fenti lista három elemű, tehát a

nevek.Count

eredménye 3.

Elemek törlése

Egy elem törlése:

.Remove

.Remove(elem)

A fenti, három elemű listához adjuk hozzá még egyszer Teleki Blankát :

nevek.Add("Teleki Blanka");

Így most négy elemű : Teleki Blanka, Zirzen Janka, Radák Olga,Teleki Blanka.

Töröljük Teleki Blankát!

nevek.Remove("Teleki Blanka");

Melyik Teleki Blanka törlődőt?
Az első. Most a listánk:

Zirzen Janka, Radák Olga,Teleki Blanka.

.RemoveAt

Egy elem törlése adott pozícióban

.RemoveAt(index)

Töröljük a legelső elemet!

nevek.RemoveAt(0);

Most a listánk:

Radák Olga,Teleki Blanka.

Elemek keresése

Ezeknél a függvényeknél az elemet ismerjük, csak azt szeretnénk megtudni, van-e a listában, vagy, hogy hol található (mi az indexe)

.Contains(elem)

.Contains()

Megadja, hogy egy adott elem szerepel-e a listában.

Szerepel-e Radák Olga a nevek listában?

bool radakvolte=nevek.Contains(“Radák Olga”);

radakvolte eredménye most true, hiszen ez a kifejezés szerepel a listában.

IndexOf(elem)

.IndexOf – az első előforduláshoz tartozó indexet adja meg.
Amennyiben az elem nincs benne a listában, akkor a vissztérési érték: -1.

Hányadik most Teleki Blanka?

int TB_index=nevek.IndexOf("Teleki Blanka");
Console.WriteLine(TB_index);

Az eredmény: 1. Hiszen a második helyen találtuk Teleki Blankát.

Adjuk hozzá a listához Radák Olgát!

nevek.Add("Radák Olga");

LastIndexOf(elem)

.LastIndexOf – az utolsó előforduláshoz tartozó indexet adja meg.
Amennyiben az elem nincs benne a listában, akkor a vissztérési érték: -1.

Hányadik helyen szerepel utoljára Radák Olga?

Console.WriteLine(nevek.LastIndexOf("Radák Olga"));

Az eredmény 2, hiszen Radák Olga a 3. helyen szerepel utoljára.

Rendezés

Reverse()

Az listában az elemek sorrendjét ellenkezőjére állítja (utolsó lesz az első, az utolsó előtti a második, stb…)

.Reverse()

Rakjuk be az elejére Zirzen Jankát!

nevek.Insert(0,"Zirzen Janka");

A lista most négy elemű: Zirzen Janka, Radák Olga,Teleki Blanka, Radák Olga.

Fordítsuk meg a sorrendet!

nevek.Reverse();

A lista most Radák Olga,Teleki Blanka, Radák Olga, Zirzen Janka.

Sort()

Az elemek növekvő sorba rendezése

.Sort()

Rakjuk növekvő sorba!

nevek.Sort();

A lista most Radák Olga, Radák Olga, Teleki Blanka, Zirzen Janka.

A programlista egyben:

 
static void Main(string[] args)
        {
            List<string> nevek = new List<string>();
            Console.WriteLine("Adjuk hozzá sorrendben a listához először Teleki Blankát,");
            nevek.Add("Teleki Blanka");
            Console.WriteLine("Majd Radák Olgát.");
            nevek.Add("Radák Olga");
            // A lista most : nevek[0]="Teleki Blanka"; nevek[1]="Radák Olga"
            Console.WriteLine("Szúrjuk be lista 2. eleme elé Zirzen Jankát!");
            nevek.Insert(1, "Zirzen Janka");
            // A lista most : nevek[0]="Teleki Blanka"; nevek[1]="Zirzen Janka"; nevek[2]="Radák Olga"
            Console.WriteLine("Adjuk hozzá (a végére) a listához Teleki Blankát");
            nevek.Add("Teleki Blanka");
            // A lista most : nevek[0]="Teleki Blanka"; nevek[1]="Zirzen Janka"; nevek[2]="Radák Olga" ; nevek[3]="Teleki Blanka"
            Console.WriteLine("A listánk darabszáma:");
            Console.WriteLine(nevek.Count);
            Console.WriteLine("Vegyük ki az első előfordulásánál Teleki Blankát!");
            nevek.Remove("Teleki Blanka");
            // A lista most : nevek[0]="Zirzen Janka"; nevek[1]="Radák Olga" ; nevek[2]="Teleki Blanka"
            Console.WriteLine("Vegyük ki az első elemét!");
            nevek.RemoveAt(0);
            // A lista most : nevek[0]="Radák Olga" ; nevek[1]="Teleki Blanka"
            Console.WriteLine("Teleki Blanka első előfordulásának az indexe : (0-val kezdünk!)");
            int TB_index = nevek.IndexOf("Teleki Blanka");
            Console.WriteLine(TB_index);
            Console.WriteLine("Adjuk hozzá (a végére) Radák Olgát!");
            nevek.Add("Radák Olga");
            // A lista most : nevek[0]="Radák Olga" ; nevek[1]="Teleki Blanka"; nevek[2]="Radák Olga"
            Console.WriteLine("Radák Olga szerepel a listában?");
            if (nevek.Contains("Radák Olga"))
            {
                Console.WriteLine("Igen, szerepel.");
            }
            else
            {
                Console.WriteLine("Nem, nem szerepel.");
            }
            Console.WriteLine("Radák Olga utolsó előfordulásának indexe");
            Console.WriteLine(nevek.LastIndexOf("Radák Olga"));
            Console.WriteLine("Szúrjuk be lista 0. eleme elé Zirzen Jankát!");
            nevek.Insert(0, "Zirzen Janka");
            // A lista most : nevek[0]="Zirzen Janka"; nevek[1]="Radák Olga" ; nevek[2]="Teleki Blanka"; nevek[3]="Radák Olga"
            Console.WriteLine("Fordítsuk meg az elemek sorrendjét");
            nevek.Reverse();
            // A lista most : nevek[0]="Radák Olga"; nevek[1]="Teleki Blanka" ; nevek[2]="Radák Olga"; nevek[3]="Zirzen Janka"
            Console.WriteLine("És rakjuk növekvő sorrendbe!");
            nevek.Sort();
            // A lista most : nevek[0]="Radák Olga"; nevek[1]="Radák Olga" ; nevek[2]="Teleki Blanka"; nevek[3]="Zirzen Janka"
            foreach (string elem in nevek)
            {
                Console.WriteLine(elem);
            }
            Console.WriteLine("Gombnyomásra vége!");
            Console.ReadKey();
        }

Összetettebb listakezelő függvényekről a kinyilvánító listakezelő függvényekről..

Továbbiakat a Microsoft Developer Networkön : https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx