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