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