F # - Listas mutáveis
o List<'T> classe representa uma lista fortemente tipada de objetos que podem ser acessados por índice.
É uma contraparte mutável da classe List. É semelhante a arrays, pois pode ser acessado por um índice; no entanto, ao contrário de arrays, as listas podem ser redimensionadas. Portanto, você não precisa especificar um tamanho durante a declaração.
Criação de uma lista mutável
As listas são criadas usando o newpalavra-chave e chamando o construtor da lista. O exemplo a seguir demonstra isso -
(* 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 você compila e executa o programa, ele produz a seguinte saída -
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia 
    A classe List (T)
A classe List (T) representa uma lista fortemente tipada de objetos que podem ser acessados por índice. Ele fornece métodos para pesquisar, classificar e manipular listas.
As tabelas a seguir fornecem as propriedades, construtores e métodos da classe List (T) -
Propriedades
| Propriedade | Descrição | 
|---|---|
| Capacidade | Obtém ou define o número total de elementos que a estrutura de dados interna pode conter sem redimensionar. | 
| Contagem | Obtém o número de elementos contidos na Lista (T). | 
| Item | Obtém ou define o elemento no índice especificado. | 
Construtores
| Construtor | Descrição | 
|---|---|
| Lista (T) () | Inicializa uma nova instância da classe List (T) que está vazia e tem a capacidade inicial padrão. | 
| Lista (T) (IEnumerable (T)) | Inicializa uma nova instância da classe List (T) que contém elementos copiados da coleção especificada e tem capacidade suficiente para acomodar o número de elementos copiados. | 
| Lista (T) (Int32) | Inicializa uma nova instância da classe List (T) que está vazia e possui a capacidade inicial especificada. | 
Método
| Métodos | Descrição | 
|---|---|
| Adicionar | Adiciona um objeto ao final da Lista (T). | 
| AddRange | Adiciona os elementos da coleção especificada ao final da Lista (T). | 
| AsReadOnly | Retorna um wrapper IList (T) somente leitura para a coleção atual. | 
| BinarySearch (T) | Pesquisa toda a lista classificada (T) para um elemento usando o comparador padrão e retorna o índice baseado em zero do elemento. | 
| BinarySearch (T, IComparer (T)) | Pesquisa toda a lista classificada (T) para um elemento usando o comparador especificado e retorna o índice baseado em zero do elemento. | 
| BinarySearch (Int32, Int32, T, IComparer (T)) | Pesquisa um intervalo de elementos na lista classificada (T) para um elemento usando o comparador especificado e retorna o índice baseado em zero do elemento. | 
| Claro | Remove todos os elementos da Lista (T). | 
| Contém | Determina se um elemento está na Lista (T). | 
| ConvertAll (TOutput) | Converte os elementos da Lista atual (T) em outro tipo e retorna uma lista contendo os elementos convertidos. | 
| CopyTo (T []) | Copia toda a lista (T) para uma matriz unidimensional compatível, começando no início da matriz de destino. | 
| CopyTo (T [], Int32) | Copia toda a List (T) para uma matriz unidimensional compatível, começando no índice especificado da matriz de destino. | 
| CopyTo (Int32, T [], Int32, Int32) | Copia um intervalo de elementos da Lista (T) para uma matriz unidimensional compatível, começando no índice especificado da matriz de destino. | 
| Igual a (objeto) | Determina se o objeto especificado é igual ao objeto atual. (Herdado do objeto.) | 
| Existe | Determina se a Lista (T) contém elementos que correspondem às condições definidas pelo predicado especificado. | 
| Finalizar | Permite que um objeto tente liberar recursos e realizar outras operações de limpeza antes de ser recuperado pela coleta de lixo (Herdado do objeto). | 
| Encontrar | Pesquisa um elemento que corresponda às condições definidas pelo predicado especificado e retorna a primeira ocorrência em toda a Lista (T). | 
| Encontrar tudo | Recupera todos os elementos que correspondem às condições definidas pelo predicado especificado. | 
| FindIndex (Predicado (T)) | Pesquisa um elemento que corresponda às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência em toda a Lista (T). | 
| FindIndex (Int32, Predicate (T)) | Procura um elemento que corresponda às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos na Lista (T) que se estende do índice especificado ao último elemento. | 
| FindIndex (Int32, Int32, Predicate (T)) | Pesquisa por um elemento que corresponda às condições definidas pelo predicado especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos na Lista (T) que começa no índice especificado e contém o número especificado de elementos. | 
| FindLast | Pesquisa um elemento que corresponda às condições definidas pelo predicado especificado e retorna a última ocorrência em toda a Lista (T). | 
| FindLastIndex (Predicado (T)) | Procura um elemento que corresponda às condições definidas pelo predicado especificado e retorna o índice baseado em zero da última ocorrência em toda a Lista (T). | 
| FindLastIndex (Int32, Predicate (T)) | Procura um elemento que corresponda às condições definidas pelo predicado especificado e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos na Lista (T) que se estende do primeiro elemento ao índice especificado. | 
| FindLastIndex (Int32, Int32, Predicate (T)) | Procura um elemento que corresponda às condições definidas pelo predicado especificado e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos na Lista (T) que contém o número especificado de elementos e termina no índice especificado. | 
| Para cada | Executa a ação especificada em cada elemento da Lista (T). | 
| GetEnumerator | Retorna um enumerador que itera por meio de List (T). | 
| GetHashCode | Serve como a função hash padrão. (Herdado do objeto.) | 
| GetRange | Cria uma cópia superficial de um intervalo de elementos na Lista de origem (T). | 
| GetType | Obtém o tipo da instância atual. (Herdado do objeto.) | 
| IndexOf (T) | Pesquisa o objeto especificado e retorna o índice baseado em zero da primeira ocorrência em toda a Lista (T). | 
| IndexOf (T, Int32) | Pesquisa o objeto especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos na Lista (T) que se estende do índice especificado ao último elemento. | 
| IndexOf (T, Int32, Int32) | Pesquisa o objeto especificado e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos na Lista (T) que começa no índice especificado e contém o número especificado de elementos. | 
| Inserir | Insere um elemento na Lista (T) no índice especificado. | 
| InsertRange | Insere os elementos de uma coleção na Lista (T) no índice especificado. | 
| LastIndexOf (T) | Pesquisa o objeto especificado e retorna o índice baseado em zero da última ocorrência em toda a Lista (T). | 
| LastIndexOf (T, Int32) | Pesquisa o objeto especificado e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos na Lista (T) que se estende do primeiro elemento ao índice especificado. | 
| LastIndexOf (T, Int32, Int32) | Pesquisa o objeto especificado e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos na Lista (T) que contém o número especificado de elementos e termina no índice especificado. | 
| MemberwiseClone | Cria uma cópia superficial do objeto atual. (Herdado do objeto.) | 
| Remover | Remove a primeira ocorrência de um objeto específico da Lista (T). | 
| Deletar tudo | Remove todos os elementos que correspondem às condições definidas pelo predicado especificado. | 
| RemoveAt | Remove o elemento no índice especificado da Lista (T). | 
| RemoveRange | Remove uma série de elementos da Lista (T). | 
| Reverter() | Inverte a ordem dos elementos em toda a Lista (T). | 
| Reverso (Int32, Int32) | Inverte a ordem dos elementos no intervalo especificado. | 
| Ordenar() | Classifica os elementos em toda a Lista (T) usando o comparador padrão. | 
| Classificar (comparação (T)) | Classifica os elementos em toda a Lista (T) usando o Sistema especificado. Comparação (T). | 
| Classificar (IComparer (T)) | Classifica os elementos em toda a Lista (T) usando o comparador especificado. | 
| Sort (Int32, Int32, IComparer (T)) | Classifica os elementos em um intervalo de elementos em List (T) usando o comparador especificado. | 
| ToArray | Copia os elementos da Lista (T) para uma nova matriz. | 
| Para sequenciar | Retorna uma string que representa o objeto atual. (Herdado do objeto.) | 
| TrimExcess | Define a capacidade para o número real de elementos na Lista (T), se esse número for menor que um valor limite. | 
| TrueForAll | Determina se cada elemento na Lista (T) corresponde às condições definidas pelo predicado especificado. | 
Exemplo
(* 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 você compila e executa o programa, ele produz a seguinte saída -
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