Tutorial C# ArrayList cu exemple

⚡ Rezumat inteligent

ArrayList în C# este o colecție dinamică din spațiul de nume System.Collections care stochează elementele ca obiecte. Spre deosebire de o matrice, aceasta crește și se micșorează în timpul execuției și poate conține numere întregi, șiruri de caractere și valori booleene într-o singură listă.

  • 🔄 Dimensionare dinamică: ArrayList adaugă și elimină elemente în timpul execuției, deci nu fixați numărul de elemente în avans, cum ar fi un array.
  • 📦 Depozitarea obiectelor: Fiecare element este stocat ca obiect, ceea ce permite unei singure ArrayList să conțină tipuri de date mixte, cum ar fi int, string și bool.
  • Metode de bază: Adăugare, Inserare, Eliminare, RemoveAt, Contains și Sortare acoperă operațiunile zilnice asupra unui ArrayList.
  • 📊 Număr și capacitate: Proprietatea Count returnează numărul curent de elemente, în timp ce Capacity este spațiul de stocare alocat.
  • Alegere modernă: Microsoft recomandă lista generică pentru codul nou deoarece adaugă siguranță de tip la compilare și evită boxing-ul.
  • 🤖 Asistență AI: GitHub Copilot schelează codul ArrayList, iar conductele ML.NET transmit date prin tipurile de colecții C#.

Listă de matrice C#

Ce este ArrayList în C#?

Colecția ArrayList este similară cu Arrays tip de date în C#. Cea mai mare diferență este natura dinamică a colecției de liste de matrice.

Pentru matrice, trebuie să definiți numărul de elemente pe care matrice le poate deține în momentul declarării matricei. Dar în cazul colecției Array List, acest lucru nu trebuie făcut în prealabil. Elementele pot fi adăugate sau eliminate din colecția Array List în orice moment. Să ne uităm la operațiunile disponibile pentru colecția de liste de matrice mai detaliat.

Declarația unei liste de matrice

Declarația unui ArrayList este furnizată mai jos. O listă de matrice este creată cu ajutorul tipului de date ArrayList. Cuvântul cheie „nou” este folosit pentru a crea un obiect al unui ArrayList. Obiectul este apoi atribuit variabilei a1. Deci, acum variabila a1 va fi folosită pentru a accesa diferitele elemente ale listei de matrice.

ArrayList a1 = new ArrayList()

Adăugarea de elemente la o matrice

Metoda add este folosită pentru a adăuga un element la ArrayList. Metoda de adăugare poate fi utilizată pentru a adăuga orice fel de element de tip de date la lista de matrice. Deci, puteți adăuga un număr întreg, sau un șir sau chiar o valoare booleană la lista matricei. Sintaxa generală a metodei de adăugare este dată mai jos

ArrayList.add(element)

Mai jos sunt câteva exemple despre cum poate fi utilizată metoda „adăugați”. Metoda de adăugare poate fi utilizată pentru a adăuga diferite tipuri de date la colecția Array List.

Mai jos puteți vedea exemple despre cum putem adăuga șiruri de caractere întregi și chiar valori booleene la colecția Array List.

  • a1.add(1) – Aceasta va adăuga o valoare întreagă la colecție
  • a1.add(„Exemplu”) – Aceasta va adăuga o valoare String la colecție
  • a1.add(true) – Aceasta va adăuga o valoare booleană colecției

Acum să vedem asta funcționând la nivel de cod. Tot codul menționat mai jos va fi scris în aplicația noastră Console. Codul va fi scris în fișierul nostru Program.cs.

În programul de mai jos, vom scrie codul pentru a crea o nouă listă de matrice. De asemenea, vom arăta pentru a adăuga elemente și pentru a afișa elementele listei Array.

ArrayList în C#

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 Explicaţie:-

  1. Primul pas este folosit pentru a declara lista noastră de matrice. Aici declarăm a1 ca o variabilă pentru a păstra elementele listei noastre de matrice.
  2. Apoi folosim cuvântul cheie add pentru a adăuga numărul 1, șirul „Exemplu” și valoarea booleană „adevărat” la lista de matrice.
  3. Apoi folosim metoda Console.WriteLine pentru a afișa valoarea fiecărui element de listă de matrice pe consolă. Veți observa că la fel ca și tablourile, putem accesa elementele prin pozițiile lor de index. Deci, pentru a accesa prima poziție a Listei de matrice, folosim poziția de index [0]. Și așa mai departe și așa mai departe.

Dacă codul de mai sus este introdus corect și programul este rulat, va fi afișată următoarea ieșire.

ieșire:

ArrayList în C#

Din rezultat, puteți vedea că toate elementele din lista de matrice sunt trimise la consolă.

Să ne uităm la câteva metode care sunt disponibile ca parte a ArrayList.

Conta

Această metodă este folosită pentru a obține numărul de elemente din colecția ArrayList. Mai jos este sintaxa generală a acestei declarații.

ArrayList.Count() – Această metodă va returna numărul de elemente pe care le conține lista de matrice.

conţine

Această metodă este folosită pentru a vedea dacă un element este prezent în colecția ArrayList. Mai jos este sintaxa generală a acestei declarații

ArrayList.Contains(element) – Această metodă va returna true dacă elementul este prezent în listă, altfel va returna false.

RemoveAt

Această metodă este folosită pentru a elimina un element dintr-o anumită poziție din colecția ArrayList. Mai jos este sintaxa generală a acestei declarații

ArrayList.RemoveAt(index) – Această metodă va elimina un element dintr-o anumită poziție a Listei de matrice.

Acum să vedem asta funcționând la nivel de cod. Tot codul menționat mai jos va fi scris în aplicația noastră Console. Codul va fi scris în fișierul nostru Program.cs.

În programul de mai jos, vom scrie codul pentru a vedea cum putem folosi metodele menționate mai sus.

ArrayList în C#

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 Explicaţie:-

  1. Deci prima proprietate pe care o vedem este proprietatea Count. Obținem proprietatea Count a listei de matrice a1 și apoi o scriem în Consolă.
  2. În a doua parte, folosim metoda Contains pentru a vedea dacă ArrayList a1 conține elementul 2. Apoi scriem rezultatul în Consolă prin comanda Writeline.
  3. În cele din urmă, pentru a prezenta metoda Remove element, efectuăm pașii de mai jos,
    1. În primul rând, scriem în consolă valoarea elementului de la poziția indexului 1 a listei de matrice.
    2. Apoi eliminăm elementul din poziția index 1 a listei de matrice.
    3. În cele din urmă, scriem din nou valoarea elementului de la poziția de index 1 a listei de matrice în consolă. Acest set de pași va da o idee corectă dacă metoda de eliminare va funcționa așa cum ar trebui.

Dacă codul de mai sus este introdus corect și programul este rulat, va fi afișată următoarea ieșire.

ieșire:

ArrayList în C#

De ce ultima valoare este adevărată?

Dacă vedeți secvența de evenimente, elementul Exemplu este eliminat din matrice, deoarece acesta se află la poziția 1. Poziția 1 a matricei este apoi înlocuită cu ceea ce a fost în poziția 2 mai devreme, iar valoarea „adevărată”

Cum se parcurge o buclă printr-o matrice C#

Citirea fiecărui element al unei ArrayList este o sarcină obișnuită. Deoarece o ArrayList își stochează elementele ca obiecte, le puteți vizita cu o buclă foreach sau cu o buclă for care utilizează proprietatea Count. Bucla foreach este cea mai simplă metodă, deoarece parcurge fiecare element în ordine, fără a fi nevoie de un index.

Exemplul de mai jos creează o listă ArrayList de șiruri de caractere și afișează fiecare valoare pe o linie separată. Codul este scris în fișierul Program.cs al unei aplicații Console.

Pas 1) Importați spațiul de nume System.Collections și creați un ArrayList cu trei elemente.

Pas 2) Folosește o buclă foreach pentru a citi fiecare element ca obiect și a-l scrie în consolă.

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 Explicaţie:-

  1. Spațiul de nume System.Collections este importat, astfel încât tipul ArrayList este disponibil programului.
  2. Trei valori de tip șir de caractere sunt adăugate la ArrayList cu metoda Add.
  3. Bucla foreach citește fiecare element ca obiect, iar metoda Console.WriteLine îl afișează pe o linie nouă.

Când programul rulează, acesta imprimă Java, Python și Kotlin pe linii separate. O buclă for cu proprietatea Count ar da același rezultat, permițându-vă în același timp să utilizați poziția index a fiecărui element.

Metode și proprietăți ArrayList C#

Clasa ArrayList oferă numeroase metode și proprietăți încorporate pentru a-și gestiona elementele. Pe lângă adăugarea și eliminarea de elemente, aceasta poate sorta, căuta și inversa colecția. Cei mai comuni membri sunt enumerați mai jos.

Membru Descriere
Adăuga Adaugă un singur element la sfârșitul ArrayList-ului.
Insera Adaugă un element la o anumită poziție de index.
Elimină Elimină prima apariție a unui anumit element.
RemoveAt Elimină elementul de la poziția index dată.
clar Elimină toate elementele din ArrayList.
Sortează Sortează elementele în ordine crescătoare.
Reverse Reverses ordinea elementelor din listă.
conţine Returnează „true” dacă un element dat există în listă.
IndexOf Returnează poziția index a unui element dat.
Conta Proprietate care returnează numărul de elemente stocate.
Capacitate Proprietate care returnează numărul de elemente pe care le poate conține lista.

Acești membri vă permit să adăugați, să găsiți, să ordonați și să eliminați elemente fără a scrie singur logica, acesta fiind unul dintre principalele avantaje ale utilizării unei colecții față de o matrice simplă.

Diferența dintre ArrayList și List în C#

Atât un ArrayList, cât și un generic Listă stochează un grup de elemente care pot crește în timpul execuției, dar care diferă în modul în care gestionează tipurile. Cunoașterea diferenței vă ajută să alegeți tipul potrivit pentru codul C# modern.

Principalele diferențe sunt enumerate mai jos:

  • Tip de siguranță: O clasă ArrayList stochează fiecare element ca obiect, în timp ce o clasă List este legată de un singur tip declarat și este verificată la momentul compilării.
  • Performanță: O listă ArrayList încadrează și deîmpachetează tipuri de valori, cum ar fi int, ceea ce consumă timp, în timp ce o listă evită încadrarea pentru o viteză mai bună.
  • Spațiu de nume: ArrayList se află în System.Collections, în timp ce List se află în System.Collections.Generic.
  • turnare: Citirea dintr-o clasă ArrayList necesită adesea o conversie înapoi la tipul original, dar o clasă List returnează direct tipul corect.
  • Recomandare: Microsoft recomandă List pentru dezvoltări noi, deoarece este mai sigur, mai rapid și mai ușor de citit.

Pe scurt, o listă ArrayList este utilă pentru înțelegerea codului mai vechi sau a stocării de tipuri mixte, în timp ce o listă este alegerea preferată pentru majoritatea aplicațiilor de astăzi.

Întrebări frecvente

Un array are o dimensiune fixă ​​și stochează un singur tip de date setat la declarare. Un ArrayList crește și se micșorează în timpul execuției și stochează fiecare element ca obiect, astfel încât poate conține tipuri de date mixte într-o singură listă.

ArrayList nu este eliminat, dar Microsoft nu o recomandă pentru dezvoltări noi. Clasa generică List din System.Collections.Generic este preferată deoarece adaugă siguranță tipurilor și performanțe mai bune, așa că majoritatea codului C# modern folosește List în schimb.

Deoarece o ArrayList stochează elementele ca obiecte, adăugarea unui tip de valoare, cum ar fi int, îl încadrează într-un obiect, ceea ce reprezintă o operațiune de boxing. Citirea înapoi a valorii și convertirea la tipul original reprezintă unboxing. Ambele etape costă performanța, lucru pe care List îl evită.

O ArrayList acceptă mai mulți cititori simultan, dar nu este garantat ca membrii instanței să fie thread-safe atunci când colecția este modificată. Pentru scrieri multithread sigure, încadrați-o cu ArrayList.Syncmetodă sincronizată sau utilizați în schimb o colecție concurentă.

„Count” este numărul de elemente stocate în prezent în ArrayList. „Capacity” este numărul total de elemente pe care le poate conține înainte de redimensionare. „Capacity” este întotdeauna egală sau mai mare decât „Count” și crește automat pe măsură ce adăugați elemente.

Puteți copia elementele într-o listă puternic tipizată cu metodele Cast și ToList sau puteți apela metoda ToArray pentru a obține un array de obiecte. Conversia la o listă generică este comună deoarece restabilește siguranța tipului.

Da. GitHub Copilot poate scrie declarații ArrayList, poate adăuga și elimina apeluri și bucle dintr-un comentariu scurt sau un nume de metodă. De multe ori sugerează și versiunea generică List, deoarece aceasta este colecția recomandată pentru codul C# nou.

ML.NET citește de obicei datele de antrenament prin colecții generice precum List și IEnumerable, care se mapează la canalul său IDataView. Un ArrayList non-generic este rareori utilizat direct, deoarece o colecție puternic tipizată menține datele de învățare automată clare și sigure din punct de vedere al tipurilor.

Rezumați această postare cu: