5.4. Lista
A lista gyakorlatilag egy változó elemszámú tömb. Mint korábban láthattuk a tömb deklarációjánál meg kell adni az elemek számát, amelynél a helyet le kell foglalni akkor is, ha nem töltjük fel valós adatokkal.
A listánál memóriahelyet takarítunk meg, mivel dinamikusan változhat az elemek száma és pontosan annyi helyet foglalunk le a lista számára, amennyire éppen szükségünk van.
A lista tehát index-érték párokból áll, ahol egy elemre az index vagy az érték segítségével hivatkozhatunk.
Lista deklarációja:
Műveletek listaelemekkel:
- elem hozzáadása:
listanev.Add(elem) - több elem hozzáadása a már meglévő lista végéhez:
listanev.AddRange(elemek). Az „elemek” lehet tömb, vagy lista. - elem eltávolítása:
listanev.Remove(elem). Ha értékefalse, akkor az elem nem szerepel a listán. - adott indexű elem eltávolítása:
listanev.RemoveAt(elemindexe). - egy elem sorszámát adja vissza:
listanev.IndexOf(elemindexe)(ha nincs a listán, akkor pedig -1-et). - lista kiürítése:
listanev.Clear().
A lista elemeit a [] operátorral érhetjük el.
52. feladat
Hozzunk létre egy 6 elemű listát, amely egész számokból áll! A számokat véletlenszerűen állítsuk elő a 0-20 intervallumból, majd írjuk ki a képernyőre az elemeket és a lista elemszámát!
Töröljünk egy tetszőleges sorszámú, majd tetszőleges értékű elemet a listából és írjuk ki az elemeket és aktuális elemszámot!
Töröljük a listát és írjuk ki az elemszámot!
Név: lista
Megoldás:
using System;
using System.Collections.Generic;
namespace ListaPélda
{
class Program
{
static void Main()
{
Random vsz = new Random();
List<int> lista = new List<int>();
Console.WriteLine(" A lista elemei: ");
for (int i = 0; i < 6; i++)
{
lista.Add(vsz.Next(21));
Console.Write("{0,5}", lista[i]);
}
Console.WriteLine();
Console.WriteLine(" A lista elemeinek száma: {0}", lista.Count);
Console.Write(" Hányadik sorszámú elemet töröljük? ");
int indexDel = Convert.ToInt32(Console.ReadLine());
lista.RemoveAt(indexDel);
for (int i = 0; i < 5; i++)
{
Console.Write("{0,5}", lista[i]);
}
Console.WriteLine();
Console.WriteLine(" A lista elemeinek száma: {0}", lista.Count);
Console.Write(" Melyik elemet töröljük? ");
int ertekDel = Convert.ToInt32(Console.ReadLine());
lista.Remove(ertekDel);
for (int i = 0; i < 4; i++)
{
Console.Write("{0,5}", lista[i]);
}
Console.WriteLine();
Console.WriteLine(" A lista elemeinek száma: {0}", lista.Count);
lista.Clear();
Console.WriteLine(" A törölt lista elemeinek száma: {0}", lista.Count);
Console.ReadKey();
}
}
}