Esercitazione su C# ArrayList con esempi

โšก Riepilogo intelligente

In C#, ArrayList รจ una collezione dinamica dello spazio dei nomi System.Collections che memorizza gli elementi come oggetti. A differenza di un array, si espande e si contrae in fase di esecuzione e puรฒ contenere valori interi, stringhe e valori booleani in un'unica lista.

  • ๐Ÿ”„ Dimensionamento dinamico: ArrayList aggiunge e rimuove elementi in fase di esecuzione, quindi non รจ necessario fissare in anticipo il numero di elementi come in un array.
  • ๐Ÿ“ฆ Archiviazione oggetti: Ogni elemento viene memorizzato come un oggetto, il che consente a un ArrayList di contenere tipi di dati misti come int, string e bool.
  • โž• Metodi principali: Le operazioni Add, Insert, Remove, RemoveAt, Contains e Sort coprono le operazioni di routine su un ArrayList.
  • ๐Ÿ“Š Conteggio e capacitร : La proprietร  Count restituisce il numero corrente di elementi, mentre Capacity indica lo spazio di archiviazione allocato.
  • โœ… Scelta moderna: Microsoft Si consiglia l'utilizzo della lista generica per il nuovo codice, in quanto aggiunge sicurezza dei tipi in fase di compilazione ed evita il boxing.
  • ๐Ÿค– Assistenza AI: GitHub Copilot genera automaticamente il codice ArrayList, mentre le pipeline ML.NET passano i dati attraverso i tipi di collezione C#.

C# ArrayList

Cos'รจ ArrayList in C#?

La raccolta ArrayList รจ simile alla Array tipo di dati in C#. La differenza piรน grande รจ la natura dinamica della raccolta dell'elenco di array.

Per gli array, รจ necessario definire il numero di elementi che l'array puรฒ contenere al momento della dichiarazione dell'array. Ma nel caso della raccolta Array List, non รจ necessario farlo prima. Gli elementi possono essere aggiunti o rimossi dalla raccolta Array List in qualsiasi momento. Diamo un'occhiata piรน in dettaglio alle operazioni disponibili per la raccolta dell'elenco di array.

Dichiarazione di un elenco di array

La dichiarazione di un ArrayList รจ fornita di seguito. Un elenco di array viene creato con l'aiuto del tipo di dati ArrayList. La parola chiave "new" viene utilizzata per creare un oggetto di un ArrayList. L'oggetto viene quindi assegnato alla variabile a1. Quindi ora la variabile a1 verrร  utilizzata per accedere ai diversi elementi dell'elenco dell'array.

ArrayList a1 = new ArrayList()

Aggiunta di elementi a un array

Il metodo add viene utilizzato per aggiungere un elemento all'ArrayList. Il metodo add puรฒ essere utilizzato per aggiungere qualsiasi tipo di elemento di tipo dati all'elenco dell'array. Quindi puoi aggiungere un numero intero, una stringa o anche un valore booleano all'elenco dell'array. Di seguito viene fornita la sintassi generale del metodo di addizione

ArrayList.add(element)

Di seguito sono riportati alcuni esempi di come รจ possibile utilizzare il metodo โ€œaggiungiโ€. Il metodo add puรฒ essere utilizzato per aggiungere vari tipi di dati alla raccolta Array List.

Di seguito puoi vedere esempi di come possiamo aggiungere stringhe di numeri interi e persino valori booleani alla raccolta Array List.

  • a1.add(1) โ€“ Questo aggiungerร  un valore intero alla raccolta
  • a1.add("Esempio") โ€“ Questo aggiungerร  un valore String alla raccolta
  • a1.add(true) โ€“ Questo aggiungerร  un valore booleano alla raccolta

Ora vediamolo funzionare a livello di codice. Tutto il codice indicato di seguito verrร  scritto nella nostra applicazione Console. Il codice verrร  scritto nel nostro file Program.cs.

Nel programma seguente scriveremo il codice per creare un nuovo elenco di array. Mostreremo anche come aggiungere elementi e visualizzare gli elementi dell'elenco Array.

ArrayList in 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 Spiegazione:-

  1. Il primo passo viene utilizzato per dichiarare la nostra lista di array. Qui stiamo dichiarando a1 come variabile per contenere gli elementi del nostro elenco di array.
  2. Utilizziamo quindi la parola chiave add per aggiungere il numero 1, la stringa "Example" e il valore booleano "true" all'elenco dell'array.
  3. Utilizziamo quindi il metodo Console.WriteLine per visualizzare il valore di ciascun elemento dell'elenco di array sulla console. Noterai che proprio come gli array, possiamo accedere agli elementi tramite le loro posizioni di indice. Quindi per accedere alla prima posizione dell'Array List, utilizziamo la posizione dell'indice [0]. E cosรฌ via e cosรฌ via.

Se il codice sopra riportato viene inserito correttamente e il programma viene eseguito, verrร  visualizzato il seguente output.

Produzione:

ArrayList in C#

Dall'output puoi vedere che tutti gli elementi dell'elenco dell'array vengono inviati alla console.

Diamo un'occhiata ad alcuni altri metodi disponibili come parte di ArrayList.

Contare

Questo metodo viene utilizzato per ottenere il numero di elementi nella raccolta ArrayList. Di seguito รจ riportata la sintassi generale di questa istruzione.

ArrayList.Count() โ€“ Questo metodo restituirร  il numero di elementi contenuti nell'elenco dell'array.

contiene

Questo metodo viene utilizzato per verificare se un elemento รจ presente nella raccolta ArrayList. Di seguito รจ riportata la sintassi generale di questa istruzione

ArrayList.Contains(elemento) โ€“ Questo metodo restituirร  true se l'elemento รจ presente nell'elenco, altrimenti restituirร  false.

RimuoviAt

Questo metodo viene utilizzato per rimuovere un elemento in una posizione specifica nella raccolta ArrayList. Di seguito รจ riportata la sintassi generale di questa istruzione

ArrayList.RemoveAt(index) โ€“ Questo metodo rimuoverร  un elemento da una posizione specifica dell'elenco degli array.

Ora vediamolo funzionare a livello di codice. Tutto il codice indicato di seguito verrร  scritto nella nostra applicazione Console. Il codice verrร  scritto nel nostro file Program.cs.

Nel programma seguente, scriveremo il codice per vedere come possiamo utilizzare i metodi sopra menzionati.

ArrayList in 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 Spiegazione:-

  1. Quindi la prima proprietร  che vediamo รจ la proprietร  Count. Stiamo ottenendo la proprietร  Count dell'elenco di array a1 e quindi la scriviamo nella Console.
  2. Nella seconda parte, utilizziamo il metodo Contiene per vedere se l'ArrayList a1 contiene l'elemento 2. Successivamente scriviamo il risultato nella Console tramite il comando Writeline.
  3. Infine, per mostrare il metodo Rimuovi elemento, stiamo eseguendo i passaggi seguenti,
    1. Per prima cosa scriviamo sulla console il valore dell'elemento nella posizione dell'indice 1 dell'elenco degli array.
    2. Quindi rimuoviamo l'elemento nella posizione dell'indice 1 dell'elenco dell'array.
    3. Infine, scriviamo nuovamente nella console il valore dell'elemento nella posizione dell'indice 1 dell'elenco degli array. Questa serie di passaggi darร  un'idea chiara se il metodo di rimozione funzionerร  come dovrebbe.

Se il codice sopra riportato viene inserito correttamente e il programma viene eseguito, verrร  visualizzato il seguente output.

Produzione:

ArrayList in C#

Perchรฉ l'ultimo valore รจ vero?

Se vedi la sequenza di eventi, l'elemento Esempio viene rimosso dall'array perchรฉ si trova nella posizione 1. La posizione 1 dell'array viene quindi sostituita da ciรฒ che prima era nella posizione 2, il cui valore รจ "true"

Come scorrere un ArrayList in C#

Leggere ogni elemento di un ArrayList รจ un'operazione comune. Poichรฉ un ArrayList memorizza i suoi elementi come oggetti, รจ possibile accedervi tramite un ciclo foreach o un ciclo for che utilizza la proprietร  Count. Il ciclo foreach รจ il metodo piรน semplice, in quanto scorre ogni elemento in ordine senza bisogno di un indice.

L'esempio seguente crea un ArrayList di stringhe e stampa ciascun valore su una riga separata. Il codice รจ scritto nel file Program.cs di un'applicazione console.

Passo 1) Importa lo spazio dei nomi System.Collections e crea un ArrayList con tre elementi.

Passo 2) Utilizza un ciclo foreach per leggere ciascun elemento come un oggetto e scrivilo nella console.

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 Spiegazione:-

  1. Lo spazio dei nomi System.Collections viene importato in modo che il tipo ArrayList sia disponibile per il programma.
  2. Con il metodo Add vengono aggiunti tre valori stringa all'ArrayList.
  3. Il ciclo foreach legge ogni elemento come un oggetto e il metodo Console.WriteLine lo stampa su una nuova riga.

Quando il programma viene eseguito, stampa Java, Pythone Kotlin su righe separate. Un ciclo for con la proprietร  Count darebbe lo stesso risultato, permettendoti anche di utilizzare la posizione dell'indice di ciascun elemento.

Metodi e proprietร  di ArrayList in C#

La classe ArrayList offre numerosi metodi e proprietร  integrati per gestire i suoi elementi. Oltre ad aggiungere e rimuovere elementi, consente di ordinare, cercare e invertire la collezione. I membri piรน comuni sono elencati di seguito.

Member Descrizione
Aggiungi Aggiunge un singolo elemento alla fine dell'ArrayList.
inserire Aggiunge un elemento in una specifica posizione di indice.
Rimuovere Rimuove la prima occorrenza di un elemento specifico.
RimuoviAt Rimuove l'elemento nella posizione di indice specificata.
Trasparente Rimuove tutti gli elementi dall'ArrayList.
Riordina Ordina gli elementi in ordine crescente.
Reverse Reverseindica l'ordine degli elementi nell'elenco.
contiene Restituisce true se un dato elemento esiste nella lista.
Indice di Restituisce l'indice di posizione di un dato elemento.
Contare Proprietร  che restituisce il numero di elementi memorizzati.
Ultra-Grande Proprietร  che restituisce il numero di elementi che la lista puรฒ contenere.

Questi membri consentono di aggiungere, trovare, ordinare e rimuovere elementi senza dover scrivere la logica manualmente, il che rappresenta uno dei principali vantaggi dell'utilizzo di una collezione rispetto a un semplice array.

Differenza tra ArrayList e List in C#

Sia un ArrayList che un generico Lista I metodi `memory` memorizzano un gruppo di elementi che possono crescere in fase di esecuzione, ma differiscono nel modo in cui gestiscono i tipi. Conoscere la differenza aiuta a scegliere quello giusto per il codice C# moderno.

Le principali differenze sono elencate di seguito:

  • Tipo di sicurezza: Un ArrayList memorizza ogni elemento come un oggetto, mentre una List รจ associata a un tipo dichiarato e viene controllata in fase di compilazione.
  • Performance: Un ArrayList esegue il boxing e l'unboxing dei tipi valore come int, il che comporta un costo in termini di tempo, mentre un List evita il boxing per una maggiore velocitร .
  • Spazio dei nomi: ArrayList risiede in System.Collections, mentre List risiede in System.Collections.Generic.
  • casting: La lettura da un ArrayList spesso richiede un cast al tipo originale, mentre una List restituisce direttamente il tipo corretto.
  • Raccomandazione: Microsoft Si consiglia List per i nuovi progetti di sviluppo perchรฉ รจ piรน sicuro, piรน veloce e piรน facile da leggere.

In breve, un ArrayList รจ utile per comprendere codice piรน datato o archiviazione di tipi misti, mentre una List รจ la scelta preferita per la maggior parte delle applicazioni odierne.

DOMANDE FREQUENTI

Un array ha una dimensione fissa e memorizza un solo tipo di dati, definito al momento della dichiarazione. Un ArrayList, invece, si espande e si contrae in fase di esecuzione e memorizza ogni elemento come un oggetto, potendo quindi contenere tipi di dati diversi in un'unica lista.

ArrayList non viene rimosso, ma Microsoft Non รจ consigliato per i nuovi sviluppi. La classe generica List in System.Collections.Generic รจ preferibile perchรฉ aggiunge sicurezza dei tipi e prestazioni migliori, quindi la maggior parte del codice C# moderno utilizza List al suo posto.

Poichรฉ un ArrayList memorizza gli elementi come oggetti, l'aggiunta di un tipo di valore come int lo incapsula in un oggetto, operazione chiamata boxing. La lettura dell'oggetto e il casting al tipo originale sono operazioni di unboxing. Entrambi i passaggi comportano una perdita di prestazioni, che List evita.

Un ArrayList supporta piรน lettori contemporaneamente, ma non รจ garantito che i membri dell'istanza siano thread-safe quando la collezione viene modificata. Per scritture multithread sicure, รจ consigliabile racchiudere la collezione in un ArrayList.Syncmetodo cronizzato oppure utilizzare una collezione concorrente in alternativa.

Count indica il numero di elementi attualmente memorizzati nell'ArrayList. Capacity รจ il numero totale di elementi che puรฒ contenere prima di ridimensionarsi. Capacity รจ sempre maggiore o uguale a Count e aumenta automaticamente man mano che si aggiungono elementi.

รˆ possibile copiare gli elementi in una List fortemente tipizzata utilizzando i metodi Cast e ToList, oppure chiamare il metodo ToArray per ottenere un array di oggetti. La conversione in una List generica รจ una pratica comune perchรฉ ripristina la sicurezza dei tipi.

Sรฌ. GitHub Copilot puรฒ scrivere dichiarazioni di ArrayList, aggiungere e rimuovere chiamate e cicli a partire da un breve commento o dal nome di un metodo. Spesso suggerisce anche la versione generica List, poichรฉ รจ la raccolta consigliata per il nuovo codice C#.

ML.NET in genere legge i dati di addestramento tramite collezioni generiche come List e IEnumerable, che vengono mappate alla sua pipeline IDataView. Un ArrayList non generico viene raramente utilizzato direttamente perchรฉ una collezione fortemente tipizzata mantiene i dati di machine learning chiari e sicuri dal punto di vista dei tipi.

Riassumi questo post con: