F # - Elenchi modificabili

Il List<'T> class rappresenta un elenco fortemente tipizzato di oggetti a cui è possibile accedere tramite indice.

È una controparte mutevole della classe List. È simile agli array, poiché è possibile accedervi da un indice, tuttavia, a differenza degli array, gli elenchi possono essere ridimensionati. Pertanto non è necessario specificare una dimensione durante la dichiarazione.

Creazione di un elenco modificabile

Gli elenchi vengono creati utilizzando il newparola chiave e chiamando il costruttore dell'elenco. Il seguente esempio lo dimostra:

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

Quando compili ed esegui il programma, restituisce il seguente output:

0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia

La classe List (T)

La classe List (T) rappresenta un elenco di oggetti fortemente tipizzato a cui è possibile accedere tramite indice. Fornisce metodi per cercare, ordinare e manipolare elenchi.

Le tabelle seguenti forniscono le proprietà, i costruttori ei metodi della classe List (T):

Proprietà

Proprietà Descrizione
Capacità Ottiene o imposta il numero totale di elementi che la struttura dati interna può contenere senza ridimensionamento.
Contare Ottiene il numero di elementi contenuti in List (T).
Articolo Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.

Costruttori

Costruttore Descrizione
Elenco (T) () Inizializza una nuova istanza della classe List (T) che è vuota e ha la capacità iniziale predefinita.
Elenco (T) (IEnumerable (T)) Inizializza una nuova istanza della classe List (T) che contiene elementi copiati dalla raccolta specificata e ha una capacità sufficiente per contenere il numero di elementi copiati.
Elenco (T) (Int32) Inizializza una nuova istanza della classe List (T) che è vuota e ha la capacità iniziale specificata.

Metodo

Metodi Descrizione
Inserisci Aggiunge un oggetto alla fine della lista (T).
AddRange Aggiunge gli elementi della raccolta specificata alla fine di List (T).
AsReadOnly Restituisce un wrapper IList (T) di sola lettura per la raccolta corrente.
BinarySearch (T) Cerca un elemento nell'intero elenco ordinato (T) utilizzando l'operatore di confronto predefinito e restituisce l'indice in base zero dell'elemento.
BinarySearch (T, IComparer (T)) Cerca un elemento nell'intero elenco ordinato (T) utilizzando l'operatore di confronto specificato e restituisce l'indice in base zero dell'elemento.
BinarySearch (Int32, Int32, T, IComparer (T)) Cerca un elemento in un intervallo di elementi nell'elenco ordinato (T) utilizzando l'operatore di confronto specificato e restituisce l'indice in base zero dell'elemento.
Chiaro Rimuove tutti gli elementi dall'elenco (T).
Contiene Determina se un elemento si trova nell'elenco (T).
ConvertAll (TOutput) Converte gli elementi nell'elenco corrente (T) in un altro tipo e restituisce un elenco contenente gli elementi convertiti.
Copia a (T []) Copia l'intero List (T) in una matrice unidimensionale compatibile, a partire dall'inizio della matrice di destinazione.
Copia a (T [], Int32) Copia l'intero List (T) in una matrice unidimensionale compatibile, a partire dall'indice specificato della matrice di destinazione.
CopyTo (Int32, T [], Int32, Int32) Copia un intervallo di elementi da List (T) a una matrice unidimensionale compatibile, a partire dall'indice specificato della matrice di destinazione.
Uguale a (oggetto) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)
Esiste Determina se List (T) contiene elementi che soddisfano le condizioni definite dal predicato specificato.
Finalizza Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che venga recuperato dalla procedura di Garbage Collection (Ereditato da Object).
Trova Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce la prima occorrenza all'interno dell'intero List (T).
Trova tutto Recupera tutti gli elementi che soddisfano le condizioni definite dal predicato specificato.
FindIndex (Predicate (T)) Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero List (T).
FindIndex (Int32, Predicate (T)) Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che si estende dall'indice specificato all'ultimo elemento.
FindIndex (Int32, Int32, Predicate (T)) Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che inizia dall'indice specificato e contiene il numero di elementi specificato.
FindLast Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'ultima occorrenza all'interno dell'intero List (T).
FindLastIndex (Predicate (T)) Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intero List (T).
FindLastIndex (Int32, Predicate (T)) Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che si estende dal primo elemento all'indice specificato.
FindLastIndex (Int32, Int32, Predicate (T)) Cerca un elemento che soddisfi le condizioni definite dal predicato specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che contiene il numero di elementi specificato e termina in corrispondenza dell'indice specificato.
Per ciascuno Esegue l'azione specificata su ogni elemento di List (T).
GetEnumerator Restituisce un enumeratore che itera attraverso List (T).
GetHashCode Serve come funzione hash predefinita. (Ereditato da Object.)
GetRange Crea una copia superficiale di un intervallo di elementi nell'elenco di origine (T).
GetType Ottiene il Type dell'istanza corrente. (Ereditato da Object.)
IndexOf (T) Cerca l'oggetto specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero List (T).
IndexOf (T, Int32) Cerca l'oggetto specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che si estende dall'indice specificato all'ultimo elemento.
IndexOf (T, Int32, Int32) Cerca l'oggetto specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che inizia dall'indice specificato e contiene il numero di elementi specificato.
Inserire Inserisce un elemento in List (T) all'indice specificato.
InsertRange Inserisce gli elementi di una raccolta in List (T) in corrispondenza dell'indice specificato.
LastIndexOf (T) Cerca l'oggetto specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intero List (T).
LastIndexOf (T, Int32) Cerca l'oggetto specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che si estende dal primo elemento all'indice specificato.
LastIndexOf (T, Int32, Int32) Cerca l'oggetto specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nell'elenco (T) che contiene il numero di elementi specificato e termina all'indice specificato.
MemberwiseClone Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object.)
Rimuovere Rimuove la prima occorrenza di un oggetto specifico dall'elenco (T).
Rimuovi tutto Rimuove tutti gli elementi che soddisfano le condizioni definite dal predicato specificato.
RemoveAt Rimuove l'elemento in corrispondenza dell'indice specificato di List (T).
RemoveRange Rimuove un intervallo di elementi dall'elenco (T).
Inversione() Inverte l'ordine degli elementi nell'intera lista (T).
Reverse (Int32, Int32) Inverte l'ordine degli elementi nell'intervallo specificato.
Ordinare() Ordina gli elementi nell'intero List (T) utilizzando l'operatore di confronto predefinito.
Ordina (Confronto (T)) Ordina gli elementi nell'intero List (T) utilizzando il System specificato. Confronto (T).
Ordina (IComparer (T)) Ordina gli elementi nell'intero List (T) utilizzando l'operatore di confronto specificato.
Ordina (Int32, Int32, IComparer (T)) Ordina gli elementi in un intervallo di elementi in List (T) utilizzando l'operatore di confronto specificato.
ToArray Copia gli elementi di List (T) in un nuovo array.
Accordare Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)
TrimExcess Imposta la capacità sul numero effettivo di elementi nell'elenco (T), se tale numero è inferiore a un valore di soglia.
TrueForAll Determina se ogni elemento in List (T) soddisfa le condizioni definite dal predicato specificato.

Esempio

(* Creating a List *)
open System.Collections.Generic

let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")

printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")

printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)

printfn("after removing from index 3")
printfn"Total %d books" booksList.Count

booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])

Quando compili ed esegui il programma, restituisce il seguente output:

Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
after inserting at index 2
Total 7 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Fountainhead
4: Thornbirds
5: Rebecca
6: Narnia
after removing from index 3
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Thornbirds
4: Rebecca
5: Narnia