Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Metodi delle Liste | Strutture Dati e Gestione dei File
C# Oltre le Basi

bookMetodi delle Liste

In questo capitolo esamineremo alcuni metodi utili delle liste.

Remove()

Il metodo Remove rimuove la prima occorrenza di un elemento da una lista.

Sintassi:

exampleList.remove(targetElement);
index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Banana", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Remove("Banana"); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

Se non viene trovato alcun elemento corrispondente, il metodo non esegue alcuna operazione.

index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Banana", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Remove("some element"); // trying to remove an unknown element Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

RemoveAt()

Il metodo RemoveAt rimuove un elemento in una posizione specifica dell'indice.

Sintassi:

exampleList.RemoveAt(index);
index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.RemoveAt(1); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

Clear

Il metodo Clear rimuove semplicemente tutti gli elementi da una lista. Non richiede argomenti.

Sintassi:

exampleList.Clear();
index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Clear(); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

Insert

Il metodo Insert inserisce un elemento nella lista in una posizione specificata dall'indice.

Sintassi:

exampleList.Insert(index, elementToInsert);
index.cs

index.cs

copy
1234567891011121314151617181920212223
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<int> numbers = new List<int> { 2, 4, 6, 10, 12 }; Console.Write("Before: "); foreach (int number in numbers) Console.Write(number + " "); numbers.Insert(3, 8); Console.Write("\nAfter: "); foreach (int number in numbers) Console.Write(number + " "); } } }

Possiamo omettere le parentesi graffe {} nel caso in cui ci sia solo un'istruzione all'interno di una condizione if, di un ciclo for o di un ciclo foreach.

index.cs

index.cs

copy
123
foreach(int number in numbers) { Console.Write(number + " "); }

Il frammento sopra è equivalente a:

index.cs

index.cs

copy
12
foreach(int number in numbers) Console.Write(number + " ");

Se è già presente un elemento all'indice specificato, esso viene spostato a destra, così come tutti gli altri elementi successivi dell'array, se presenti. Il diagramma seguente illustra il processo:

Contains()

Il metodo Contains verifica se una lista contiene un elemento specifico. Restituisce un valore booleano (true o false).

Sintassi: exampleList.Contains(element);

index.cs

index.cs

copy
1234567891011121314
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; Console.WriteLine("Contains 'o': " + vowels.Contains('o')); } } }

IndexOf()

Il metodo IndexOf restituisce l'indice della prima occorrenza di un elemento in una lista.

Sintassi: exampleList.IndexOf(element);

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; vowels.Remove('o'); Console.WriteLine("Index of 'o': " + vowels.IndexOf('o')); } } }

Se l'elemento non esiste nella lista, restituisce semplicemente -1:

Il metodo indexOf è particolarmente utile quando si desidera accedere a un elemento tramite indice senza conoscerne l'indice. Nell'elenco vowels, si vuole accedere all'elemento o tramite indice e modificarlo in O maiuscola:

index.cs

index.cs

copy
12345678910111213141516171819
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; int targetIndex = vowels.IndexOf('o'); Console.WriteLine(vowels[targetIndex]); vowels[targetIndex] = 'O'; Console.WriteLine(vowels[targetIndex]); } } }

1. Cosa fa il metodo Remove()?

2. Qual è il modo più veloce per verificare se una lista contiene un elemento specifico?

3. Quale metodo viene utilizzato per rimuovere tutti gli elementi da una lista?

4. Quale sarà l'output del seguente codice?

question mark

Cosa fa il metodo Remove()?

Select the correct answer

question mark

Qual è il modo più veloce per verificare se una lista contiene un elemento specifico?

Select the correct answer

question mark

Quale metodo viene utilizzato per rimuovere tutti gli elementi da una lista?

Select the correct answer

question mark

Quale sarà l'output del seguente codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.04

bookMetodi delle Liste

Scorri per mostrare il menu

In questo capitolo esamineremo alcuni metodi utili delle liste.

Remove()

Il metodo Remove rimuove la prima occorrenza di un elemento da una lista.

Sintassi:

exampleList.remove(targetElement);
index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Banana", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Remove("Banana"); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

Se non viene trovato alcun elemento corrispondente, il metodo non esegue alcuna operazione.

index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Banana", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Remove("some element"); // trying to remove an unknown element Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

RemoveAt()

Il metodo RemoveAt rimuove un elemento in una posizione specifica dell'indice.

Sintassi:

exampleList.RemoveAt(index);
index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.RemoveAt(1); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

Clear

Il metodo Clear rimuove semplicemente tutti gli elementi da una lista. Non richiede argomenti.

Sintassi:

exampleList.Clear();
index.cs

index.cs

copy
123456789101112131415161718192021222324252627
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<string> fruits = new List<string> { "Apple", "Orange", "Banana", "Grape" }; Console.Write("Before: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } fruits.Clear(); Console.Write("\nAfter: "); foreach (string fruit in fruits) { Console.Write(fruit + " "); } } } }

Insert

Il metodo Insert inserisce un elemento nella lista in una posizione specificata dall'indice.

Sintassi:

exampleList.Insert(index, elementToInsert);
index.cs

index.cs

copy
1234567891011121314151617181920212223
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<int> numbers = new List<int> { 2, 4, 6, 10, 12 }; Console.Write("Before: "); foreach (int number in numbers) Console.Write(number + " "); numbers.Insert(3, 8); Console.Write("\nAfter: "); foreach (int number in numbers) Console.Write(number + " "); } } }

Possiamo omettere le parentesi graffe {} nel caso in cui ci sia solo un'istruzione all'interno di una condizione if, di un ciclo for o di un ciclo foreach.

index.cs

index.cs

copy
123
foreach(int number in numbers) { Console.Write(number + " "); }

Il frammento sopra è equivalente a:

index.cs

index.cs

copy
12
foreach(int number in numbers) Console.Write(number + " ");

Se è già presente un elemento all'indice specificato, esso viene spostato a destra, così come tutti gli altri elementi successivi dell'array, se presenti. Il diagramma seguente illustra il processo:

Contains()

Il metodo Contains verifica se una lista contiene un elemento specifico. Restituisce un valore booleano (true o false).

Sintassi: exampleList.Contains(element);

index.cs

index.cs

copy
1234567891011121314
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; Console.WriteLine("Contains 'o': " + vowels.Contains('o')); } } }

IndexOf()

Il metodo IndexOf restituisce l'indice della prima occorrenza di un elemento in una lista.

Sintassi: exampleList.IndexOf(element);

index.cs

index.cs

copy
123456789101112131415
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; vowels.Remove('o'); Console.WriteLine("Index of 'o': " + vowels.IndexOf('o')); } } }

Se l'elemento non esiste nella lista, restituisce semplicemente -1:

Il metodo indexOf è particolarmente utile quando si desidera accedere a un elemento tramite indice senza conoscerne l'indice. Nell'elenco vowels, si vuole accedere all'elemento o tramite indice e modificarlo in O maiuscola:

index.cs

index.cs

copy
12345678910111213141516171819
using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { List<char> vowels = new List<char> { 'a', 'e', 'i', 'o', 'u' }; int targetIndex = vowels.IndexOf('o'); Console.WriteLine(vowels[targetIndex]); vowels[targetIndex] = 'O'; Console.WriteLine(vowels[targetIndex]); } } }

1. Cosa fa il metodo Remove()?

2. Qual è il modo più veloce per verificare se una lista contiene un elemento specifico?

3. Quale metodo viene utilizzato per rimuovere tutti gli elementi da una lista?

4. Quale sarà l'output del seguente codice?

question mark

Cosa fa il metodo Remove()?

Select the correct answer

question mark

Qual è il modo più veloce per verificare se una lista contiene un elemento specifico?

Select the correct answer

question mark

Quale metodo viene utilizzato per rimuovere tutti gli elementi da una lista?

Select the correct answer

question mark

Quale sarà l'output del seguente codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3
some-alt