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