C# ArrayListi õpetus koos näidetega
⚡ Nutikas kokkuvõte
C#-s on ArrayList dünaamiline kogum System.Collections nimeruumist, mis salvestab elemente objektidena. Erinevalt massiivist kasvab ja kahaneb see käitusajal ning saab ühes loendis hoida täisarve, stringe ja Boole'i väärtusi.

Mis on ArrayList C#-s?
ArrayListi kollektsioon on sarnane Massiraadid andmetüüp C# keeles. Suurim erinevus on massiiviloendikogu dünaamiline olemus.
Massiivide jaoks peate määratlema elementide arvu, mida massiiv võib massiivi deklareerimise ajal sisaldada. Kuid kogu Array List puhul pole seda vaja eelnevalt teha. Elemente saab massiiviloendi kollektsioonist igal ajal lisada või sealt eemaldada. Vaatame üksikasjalikumalt massiivi loendikogu jaoks saadaolevaid toiminguid.
Massiiviloendi deklaratsioon
ArrayListi deklaratsioon on toodud allpool. Massiiviloend luuakse andmetüübi ArrayList abil. Märksõna "uus" kasutatakse ArrayListi objekti loomiseks. Seejärel määratakse objekt muutujale a1. Nii et nüüd kasutatakse massiivi loendi erinevatele elementidele juurdepääsuks muutujat a1.
ArrayList a1 = new ArrayList()
Elementide lisamine massiivi
Lisamismeetodit kasutatakse elemendi lisamiseks loendisse ArrayList. Lisamismeetodit saab kasutada mis tahes andmetüübi elemendi lisamiseks massiivi loendisse. Nii saate massiivi loendisse lisada täisarvu või stringi või isegi tõeväärtuse. Lisamismeetodi üldine süntaks on toodud allpool
ArrayList.add(element)
Allpool on mõned näited lisamismeetodi kasutamisest. Lisamismeetodit saab kasutada mitmesuguste andmetüüpide lisamiseks massiiviloendi kogusse.
Allpool näete näiteid selle kohta, kuidas saame massiiviloendi kogusse lisada täisarvu stringe ja isegi Boole'i väärtusi.
- a1.add(1) – see lisab kogule täisarvu väärtuse
- a1.add("Näide") – see lisab kogule stringi väärtuse
- a1.add(true) – see lisab kogule Boole'i väärtuse
Nüüd vaatame, kuidas see töötab koodi tasemel. Kogu allpool nimetatud kood kirjutatakse meie konsoolirakendusse. Kood kirjutatakse meie faili Program.cs.
Allolevas programmis kirjutame uue massiiviloendi loomiseks koodi. Näitame ka elementide lisamist ja massiivi loendi elementide kuvamist.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add("Example"); a1.Add(true); Console.WriteLine(a1[0]); Console.WriteLine(a1[1]); Console.WriteLine(a1[2]); Console.ReadKey(); } } }
Code Selgitus:-
- Esimest sammu kasutatakse meie massiiviloendi deklareerimiseks. Siin deklareerime a1 muutujaks meie massiiviloendi elementide hoidmiseks.
- Seejärel kasutame massiivi loendisse numbri 1 , stringi "Example" ja Boole'i väärtuse "true" lisamiseks lisa märksõna.
- Seejärel kasutame meetodit Console.WriteLine, et kuvada konsooli iga massiivi loendite elemendi väärtus. Märkate, et nagu massiivid, pääseme elementidele juurde nende indeksi positsioonide kaudu. Nii et massiiviloendi esimesele positsioonile pääsemiseks kasutame indeksi positsiooni [0]. Ja nii edasi ja nii edasi.
Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatakse, kuvatakse järgmine väljund.
Väljund:
Väljundist näete, et kõik massiiviloendi elemendid saadetakse konsooli.
Vaatame veel mõnda meetodit, mis on saadaval ArrayListi osana.
Loendama
Seda meetodit kasutatakse ArrayListi kogus olevate üksuste arvu saamiseks. Allpool on selle avalduse üldine süntaks.
ArrayList.Count() – see meetod tagastab massiiviloendis sisalduvate elementide arvu.
Sisaldab
Seda meetodit kasutatakse selleks, et näha, kas element on ArrayListi kogus olemas. Allpool on selle avalduse üldine süntaks
ArrayList.Contains(element) – see meetod tagastab tõese, kui element on loendis olemas, vastasel juhul tagastab see vale.
EemaldaAt
Seda meetodit kasutatakse elemendi eemaldamiseks kindlast positsioonist ArrayListi kogus. Allpool on selle avalduse üldine süntaks
ArrayList.RemoveAt(index) – see meetod eemaldab elemendi massiiviloendi kindlast positsioonist.
Nüüd vaatame, kuidas see töötab koodi tasemel. Kogu allpool nimetatud kood kirjutatakse meie konsoolirakendusse. Kood kirjutatakse meie faili Program.cs.
Allolevas programmis kirjutame koodi, et näha, kuidas saame ülalnimetatud meetodeid kasutada.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add(1); a1.Add("Example"); a1.Add(true); Console.WriteLine(a1.Count); Console.WriteLine(a1.Contains(2)); Console.WriteLine(a1[1]); a1.RemoveAt(1); Console.WriteLine(a1[1]); Console.ReadKey(); } } }
Code Selgitus:-
- Seega on esimene omadus, mida me näeme, krahv. Me saame massiiviloendi a1 atribuudi Count ja kirjutame selle seejärel konsooli.
- Teises osas kasutame Contains meetodit, et näha, kas ArrayList a1 sisaldab elementi 2. Seejärel kirjutame tulemuse käsu Writeline kaudu konsooli.
- Lõpuks, elemendi eemaldamise meetodi tutvustamiseks teeme alltoodud toimingud,
- Kõigepealt kirjutame konsooli massiiviloendi positsioonil Indeks 1 oleva elemendi väärtuse.
- Seejärel eemaldame massiiviloendi indeksi positsioonil 1 oleva elemendi.
- Lõpuks kirjutame uuesti konsooli massiiviloendi positsioonil Index 1 oleva elemendi väärtuse. See toimingute kogum annab õiglase ettekujutuse, kas eemaldamismeetod töötab nii, nagu peaks.
Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatakse, kuvatakse järgmine väljund.
Väljund:
Miks on viimane väärtus tõene?
Kui näete sündmuste jada, eemaldatakse massiivist element Näide, kuna see asub positsioonil 1. Massiivi positsioon 1 asendatakse seejärel sellega, mis oli varem positsioonis 2, mille väärtus on "true".
Kuidas C# ArrayListi tsüklit läbida
ArrayListi iga elemendi lugemine on tavaline ülesanne. Kuna ArrayList salvestab oma elemendid objektidena, saab neid külastada foreach-tsükliga või for-tsükliga, mis kasutab omadust Count. Foreach-tsükkel on lihtsaim viis, kuna see käib iga elemendi läbi järjekorras ilma indeksit vajamata.
Allolev näide loob stringidest ArrayListi ja prindib iga väärtuse eraldi reale. Kood on kirjutatud konsoolirakenduse faili Program.cs.
Step 1) Impordi nimeruum System.Collections ja loo kolme elemendiga ArrayList.
Step 2) Kasutage foreach-tsüklit iga elemendi objektina lugemiseks ja konsoolile kirjutamiseks.
using System; using System.Collections; namespace DemoApplication { class Program { static void Main(string[] args) { ArrayList a1 = new ArrayList(); a1.Add("Java"); a1.Add("Python"); a1.Add("Kotlin"); foreach (object item in a1) { Console.WriteLine(item); } Console.ReadKey(); } } }
Code Selgitus:-
- Nimeruum System.Collections imporditakse, et ArrayList tüüp oleks programmile saadaval.
- Kolm stringiväärtust lisatakse ArrayListile meetodi Add abil.
- Foreach tsükkel loeb iga elemendi objektina ja Console.WriteLine meetod prindib selle uuele reale.
Kui programm käivitatakse, prindib see välja Java, Pythonja Kotlin eraldi ridadel. Count omadusega for-tsükkel annaks sama tulemuse, võimaldades samal ajal kasutada iga elemendi indeksipositsiooni.
C# ArrayListi meetodid ja omadused
ArrayList klass pakub oma elementide haldamiseks palju sisseehitatud meetodeid ja omadusi. Lisaks elementide lisamisele ja eemaldamisele saab see sortida, otsida ja kogumit ümber pöörata. Kõige levinumad liikmed on loetletud allpool.
| Liige | Kirjeldus |
| lisama | Lisab ArrayListi lõppu ühe elemendi. |
| Sisesta | Lisab elemendi kindlale indeksipositsioonile. |
| eemalda | Eemaldab konkreetse elemendi esimese esinemise. |
| EemaldaAt | Eemaldab elemendi antud indeksipositsioonilt. |
| Puhasta valikud | Eemaldab ArrayListist kõik elemendid. |
| Sort | Sorteerib elemendid kasvavas järjekorras. |
| Reverse | Reverses elementide järjekord loendis. |
| Sisaldab | Tagastab väärtuse tõene (true), kui antud element loendis eksisteerib. |
| IndeksOf | Tagastab antud elemendi indeksipositsiooni. |
| Loendama | Omadus, mis tagastab salvestatud elementide arvu. |
| Võimsus | Omadus, mis tagastab loendis olevate elementide arvu. |
Need liikmed võimaldavad teil elemente lisada, leida, järjestada ja eemaldada ilma loogikat ise kirjutamata, mis on üks peamisi eeliseid kollektsiooni kasutamisel tavalise massiivi ees.
Erinevus ArrayListi ja Listi vahel C#-s
Nii ArrayList kui ka üldine nimekiri salvestada üksuste rühma, mis saab käitusajal kasvada, kuid need erinevad tüüpide käsitlemise poolest. Erinevuse teadmine aitab teil valida tänapäevase C# koodi jaoks õige.
Peamised erinevused on loetletud allpool:
- Tüübi ohutus: ArrayList salvestab iga elemendi objektina, samas kui List on seotud ühe deklareeritud tüübiga ja seda kontrollitakse kompileerimise ajal.
- Performance: ArrayList kastib ja eemaldab kastidest väärtustüüpe, näiteks int, mis on aeganõudev, samas kui List väldib kastimist parema kiiruse saavutamiseks.
- Nimeruum: ArrayList asub kaustas System.Collections, List aga kaustas System.Collections.Generic.
- casting: ArrayListist lugemine nõuab sageli tagasi algsele tüübile teisendamist, kuid List tagastab otse õige tüübi.
- Soovitus: Microsoft soovitab uute arenduste jaoks Listi, kuna see on turvalisem, kiirem ja hõlpsamini loetav.
Lühidalt öeldes on ArrayList kasulik vanema koodi või segatüüpi salvestuse mõistmiseks, samas kui List on tänapäeval enamiku rakenduste jaoks eelistatud valik.




