Compartilhar via


Tipos de coleção de F#

Examinando este tópico, você pode determinar que ternos de tipo coleção de F# melhores uma necessidade específico. Esses tipos de coleção diferem de coleção no .NET Framework, como aqueles no namespace de System.Collections.Generic , que os tipos de coleção de F# são criados a partir de uma perspectiva funcional de programação em vez de uma perspectiva orientada a objeto. Mais especificamente, somente a coleção array tem elementos mutáveis. Portanto, quando você altera uma coleção, você cria uma instância de coleção alterada em vez de modificar a coleção original.

Os tipos de coleção também diferem no tipo de estrutura de dados nos objetos são armazenados. Estruturas de dados como o hash as tabelas, listas vinculadas, e matrizes têm características de desempenho diferentes e um conjunto diferente de operações disponíveis.

Tipos de coleção de F#

A tabela seguinte mostra tipos de coleção de F#.

Tipo

Descrição

Links relacionados

List

Uma série ordenada, imutável de elementos do mesmo tipo. Implementado como uma lista vinculada.

Listas (F#)

Módulo de lista

Matriz

Uma coleção de tamanho fixo, com base zero, mutável dos elementos de dados consecutivos que são todo o mesmo tipo.

Matrizes (F#)

Módulo de matriz

Módulo de Array2D

Módulo de Array3D

segs.

Uma série lógica de elementos que são qualquer um tipo. Sequências são particularmente úteis quando você tiver um grande, coleção ordenada de dados mas não necessariamente esperam usar todos os elementos. Os elementos individuais da seqüência são computados somente conforme necessário, então uma seqüência pode executar melhor do que uma lista se nem todos os elementos é usada. Sequências são representadas pelo tipo seq<'T>, que é um alias para IEnumerable<T>. Portanto, qualquer tipo do .NET Framework que implementa IEnumerable pode ser usado como uma seqüência.

Sequências (F#)

Módulo segs.

Mapa

Um dicionário imutável de elementos. Os elementos são acessados por chave.

Módulo de mapa

Set

Um conjunto imutável que é baseado em árvores binárias, onde a comparação é a função estrutural de comparação de F#, que usa potencialmente implementações de interface de IComparable em valores chave.

Defina o módulo

Tabela de funções

Esta seção compara as funções que estão disponíveis em tipos de coleção de F#. A complexidade computacional da função é fornecida Em, onde é o tamanho da primeira coleção, e M é o tamanho da segunda coleção, se houver. Um sublinhado (-) indica que essa função não está disponível na coleção. Porque as seqüências lazy são avaliadas, uma função como Seq.distinct pode ser O (1) porque ele retorna imediatamente, embora ainda afeta o desempenho da seqüência quando enumerado.

Função

Matriz

List

Seqüência

Mapa

Set

Descrição

acrescentar

OS M ()

OS (N)

OS (N)

-

-

Retorna uma nova coleção que contém os elementos da coleção primeiro seguido por elementos da segunda coleção.

adicione

-

-

-

Em o (log)

Em o (log)

Retorna uma nova coleção com o elemento adicionado.

média

OS (N)

OS (N)

OS (N)

-

-

Retorna a média dos elementos na coleção.

averageBy

OS (N)

OS (N)

OS (N)

-

-

Retorna a média dos resultados de funções fornecidas aplicado a cada elemento.

blit

OS (N)

-

-

-

-

Copia uma seção de uma matriz.

cache

-

-

OS (N)

-

-

Cálculos e elementos dos armazenamentos de uma seqüência.

conversão

-

-

OS (N)

-

-

Converte elementos para o tipo especificado.

escolha

OS (N)

OS (N)

OS (N)

-

-

Aplica a função determinada f para cada elemento x da lista. Retorna a lista que contém os resultados para cada elemento onde a função retorna Some(f(x)).

coletar

OS (N)

OS (N)

OS (N)

-

-

Aplica a função fornecida para cada elemento da coleção, concatena todos os resultados, e retorna a lista combinada.

compareWith

-

-

OS (N)

-

-

Compara duas seqüências usando a função determinada de comparação, elemento do elemento.

concat

OS (N)

OS (N)

OS (N)

-

-

Combina as enumeração -- enumerações disponíveis como uma única enumeração concatenada.

contém

-

-

-

-

Em o (log)

Retorna true se o dataset contém o elemento especificado.

containsKey

-

-

-

Em o (log)

-

Testa se um elemento está no domínio de um mapa.

contagem

-

-

-

-

OS (N)

Retorna o número de elementos no dataset.

countBy

-

-

OS (N)

-

-

Aplica uma função de geração para cada elemento de uma seqüência, e retorna uma seqüência que gere chaves exclusivas e o número de acertos na seqüência original.

impressão

OS (N)

-

OS (N)

-

-

Copia a coleção.

crie

OS (N)

-

-

-

-

Cria uma matriz de inteiros todos elementos que são inicialmente o valor fornecido.

atraso

-

-

o (1)

-

-

Retorna uma seqüência que é compilada da especificação tardia de uma determinada seqüência.

diferença

-

-

-

-

O log Em M (*)

Retorna um novo conjunto com os elementos do segundo conjunto removido do primeiro definido.

distinto

O (1 *)

Retorna uma seqüência que não contém nenhuma entrada duplicada de acordo com hash genéricos comparações de igualdade e nas entradas. Se um elemento ocorre várias vezes em uma seqüência, visitas posteriores são descartados.

distinctBy

O (1 *)

Retorna uma seqüência que não contém nenhuma entrada duplicada de acordo com as comparações genéricos de hash e de igualdade em chaves que a função de geração determinada retorna. Se um elemento ocorre várias vezes em uma seqüência, visitas posteriores são descartados.

vazio

o (1)

o (1)

o (1)

o (1)

o (1)

Cria uma coleção vazia.

existe

OS (N)

OS (N)

OS (N)

Em o (log)

Em o (log)

Testa se qualquer elemento da seqüência satisfaz o predicado dado.

exists2

(O minuto (N, M))

-

(O minuto (N, M))

Testa se qualquer par de elementos correspondentes de seqüências de entrada satisfaz o predicado dado.

preenchimento

OS (N)

Define um intervalo de elementos da matriz para o valor fornecido.

filtro

OS (N)

OS (N)

OS (N)

OS (N)

OS (N)

Retorna uma nova coleção que contém apenas elementos da coleção para que o predicado determinado retorna true.

localizar

OS (N)

OS (N)

OS (N)

Em o (log)

-

Retorna o primeiro elemento para que a função retorna determinada true. Retorna KeyNotFoundException se nenhum tal elemento existe.

findIndex

OS (N)

OS (N)

OS (N)

-

-

Retorna o índice do primeiro elemento na matriz que satisfaz o predicado dado. Aumenta KeyNotFoundException se nenhum elemento satisfaz o predicado.

findKey

-

-

-

Em o (log)

-

Avalia a função em cada mapeamento na coleção, e retorna a chave para o primeiro mapeamento onde a função retorna true. Se nenhum tal elemento existir, gera KeyNotFoundExceptionde essa função.

dobra

OS (N)

OS (N)

OS (N)

OS (N)

OS (N)

Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Se a função de entrada é f e os elementos são i0… em, os cálculos f de essa função (… f i0 (s)…) em.

fold2

OS (N)

OS (N)

-

-

-

Aplica uma função para os elementos correspondentes de duas coleções, rosqueando um argumento de acumulador com a computação. As coleções devem ter tamanhos idênticos. Se a função de entrada é f e os elementos são…… i0 o jN em e j0, os cálculos f de essa função (… f i0 j0 (s)…) no jN.

foldBack

OS (N)

OS (N)

-

OS (N)

OS (N)

Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Se a função de entrada é f e os elementos são i0… em, os cálculos f i0 de essa função (… f em (s)).

foldBack2

OS (N)

OS (N)

-

-

-

Aplica uma função para os elementos correspondentes de duas coleções, rosqueando um argumento de acumulador com a computação. As coleções devem ter tamanhos idênticos. Se a função de entrada é f e os elementos são…… i0 o jN em e j0, os cálculos f i0 j0 de essa função (… (f no jN s)).

forall

OS (N)

OS (N)

OS (N)

OS (N)

OS (N)

Testa se todos os elementos da coleção satisfazem o predicado dado.

forall2

OS (N)

OS (N)

OS (N)

-

-

Testa se todos os elementos correspondentes da coleção satisfazem o predicado determinado por pares.

get/nth

o (1)

OS (N)

OS (N)

-

-

Retorna um elemento da coleção dada seu índice.

o início

-

o (1)

o (1)

-

-

Retorna o primeiro elemento da coleção.

init

OS (N)

OS (N)

o (1)

-

-

Cria uma coleção dada a dimensão e uma função do gerador para calcular os elementos.

initInfinite

-

-

o (1)

-

-

Gera uma seqüência que, quando iterada, retorna os elementos sucessivos chamar a função especificados.

intersecção

-

-

-

-

O (log Em log M *)

Calcula a interseção de dois conjuntos.

intersectMany

-

-

-

-

OS N1 (* N2…)

Calcula a interseção de uma seqüência de conjuntos. A seqüência não deve ser vazia.

isEmpty

o (1)

o (1)

o (1)

o (1)

-

Retorna true se a coleção estiver vazia.

isProperSubset

-

-

-

-

O log Em M (*)

Retorna true se todos os elementos de definir primeiro no segundo conjunto, e pelo menos um elemento do segundo conjunto não está definido no primeiro.

isProperSuperset

-

-

-

-

O log Em M (*)

Retorna true se todos os elementos do segundo conjunto está definido no primeiro, e pelo menos um elemento de definido inicialmente não estiver no segundo conjunto.

isSubset

-

-

-

-

O log Em M (*)

Retorna true se todos os elementos de definir primeiro no segundo conjunto.

isSuperset

-

-

-

-

O log Em M (*)

Retorna true se todos os elementos do segundo conjunto está definido no primeiro.

ITER

OS (N)

OS (N)

OS (N)

OS (N)

OS (N)

Aplica a função fornecida para cada elemento da coleção.

iteri

OS (N)

OS (N)

OS (N)

-

-

Aplica a função fornecida para cada elemento da coleção. O número inteiro que é passado para a função indica o índice do elemento.

iteri2

OS (N)

OS (N)

-

-

-

Aplica a função recebe a um par de elementos que são desenhados índices correspondentes em duas matrizes. O número inteiro que é passado para a função indica o índice de elementos. As duas matrizes devem ter o mesmo tamanho.

iter2

OS (N)

OS (N)

OS (N)

-

-

Aplica a função recebe a um par de elementos que são desenhados índices correspondentes em duas matrizes. As duas matrizes devem ter o mesmo tamanho.

comprimento

o (1)

OS (N)

OS (N)

-

-

Retorna o número de elementos na coleção.

mapa

OS (N)

OS (N)

o (1)

-

-

Cria uma coleção cujos elementos são os resultados de aplicar a função fornecida para cada elemento da matriz.

map2

OS (N)

OS (N)

o (1)

-

-

Cria uma coleção cujos elementos são os resultados de aplicar a função dada aos elementos correspondentes das duas coleções por pares. As duas matrizes entradas devem ter o mesmo tamanho.

map3

-

OS (N)

-

-

-

Cria uma coleção cujos elementos são os resultados de aplicar a função dada aos elementos correspondentes das três coleções simultaneamente.

mapi

OS (N)

OS (N)

OS (N)

-

-

Cria uma matriz cujos elementos são os resultados de aplicar a função fornecida para cada elemento da matriz. O índice inteiro que é passado para a função indica o índice de um elemento que está sendo transformado.

mapi2

OS (N)

OS (N)

-

-

-

Cria uma coleção cujos elementos são os resultados de aplicar a função dada aos elementos correspondentes das duas coleções por pares, também passando o índice de elementos. As duas matrizes entradas devem ter o mesmo tamanho.

máximo

OS (N)

OS (N)

OS (N)

-

-

Retorna o maior elemento na coleção, comparadas usando o operador de máximo .

maxBy

OS (N)

OS (N)

OS (N)

-

-

Retorna o maior elemento na coleção, comparadas usando máximo o resultado da função.

maxElement

-

-

-

-

Em o (log)

Retorna o maior elemento no conjunto de acordo com a ordem que é usado para o dataset.

minuto

OS (N)

OS (N)

OS (N)

-

-

Retorna o elemento na coleção, comparadas usando o operador de minuto .

minBy

OS (N)

OS (N)

OS (N)

-

-

Retorna o elemento na coleção, comparadas usando o operador de minuto o resultado da função.

minElement

-

-

-

-

Em o (log)

Retorna o menor elemento no conjunto de acordo com a ordem que é usado para o dataset.

ofArray

-

OS (N)

o (1)

OS (N)

OS (N)

Cria uma coleção que contém os mesmos elementos da matriz fornecida.

ofList

OS (N)

-

o (1)

OS (N)

OS (N)

Cria uma coleção que contém os mesmos elementos que a lista fornecida.

ofSeq

OS (N)

OS (N)

-

OS (N)

OS (N)

Cria uma coleção que contém os mesmos elementos que a seqüência determinada.

por pares

-

-

OS (N)

-

-

Retorna uma seqüência de cada elemento na seqüência de entrada e do seu antecessor exceto para o primeiro elemento, que é retornado somente como o antecessor do segundo elemento.

partition

OS (N)

OS (N)

-

OS (N)

OS (N)

Divide a coleção em duas coleções. A primeira coleção contém os elementos para que o predicado determinado retorna true, e a segunda coleção contém os elementos para que o predicado determinado retorna false.

permutar

OS (N)

OS (N)

-

-

-

Retorna uma matriz com todos os elementos permutados de acordo com a permutação especificada.

picareta

OS (N)

OS (N)

OS (N)

Em o (log)

-

Aplica a função determinada para sucessivos elementos, retornando o primeiro resultado onde a função retorna alguns. Se a função nunca retorna alguns, KeyNotFoundException é gerado.

readonly

-

-

OS (N)

-

-

Cria um objeto de seqüência que representantes a seqüência determinada objeto. Esta operação garante que uma conversão de tipos não pode redescobrir e transformar a seqüência original. Por exemplo, se fornecida uma matriz, a seqüência retornado retornará os elementos da matriz, mas você não pode converter o objeto retornado da seqüência a uma matriz.

reduza

OS (N)

OS (N)

OS (N)

-

-

Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Inicia essa função aplicando a função para os primeiros dois elementos, passa esse resultado da função juntamente com o terceiro elemento, e assim por diante. a função retorna o resultado final.

reduceBack

OS (N)

OS (N)

-

-

-

Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Se a função de entrada é f e os elementos são i0… em, os cálculos f i0 de essa função (… (f iN-1 em).)

remova

-

-

-

Em o (log)

Em o (log)

Remove um elemento do domínio do mapa. Nenhuma exceção é gerada se o elemento não.

replicar

-

OS (N)

-

-

-

Cria uma lista de um comprimento especificado com cada elemento ao valor fornecido.

rev

OS (N)

OS (N)

-

-

-

Retorna uma nova lista com elementos em ordem inversa.

verificação

OS (N)

OS (N)

OS (N)

-

-

Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Esta operação aplica a função e o segundo argumento para o primeiro elemento da lista. A operação então passa esse resultado da função juntamente com o segundo elemento e assim por diante. Finalmente, a operação retorna a lista de resultados intermediários e o resultado final.

scanBack

OS (N)

OS (N)

-

-

-

Se assemelha a operação foldBack mas a retorna os resultados intermediários e finais.

singleton

-

-

o (1)

-

o (1)

Retorna uma seqüência que gere somente um item.

dataset

o (1)

-

-

-

-

Define um elemento de uma matriz para o valor especificado.

ignorar

-

-

OS (N)

-

-

Retorna uma seqüência que pular os elementos de Em a seqüência subjacente e gere os elementos restantes na seqüência.

skipWhile

-

-

OS (N)

-

-

Retorna uma seqüência que, quando iterada, pule os elementos da seqüência subjacente quando o predicado determinado retornar true e render nos elementos restantes a seqüência.

tipo

O (média de log Em Em)

O caso de N^2 ()

O log de Em (Em)

O log de Em (Em)

-

-

Classificar a coleção pelo valor do elemento. Os elementos são comparados usando compare.

sortBy

O (média de log Em Em)

O caso de N^2 ()

O log de Em (Em)

O log de Em (Em)

-

-

Classificar a lista determinada usando as teclas que a projeção determinada fornece. As chaves são comparadas usando compare.

sortInPlace

O (média de log Em Em)

O caso de N^2 ()

-

-

-

-

Classifica os elementos de uma matriz transformando no local e usando a função determinada de comparação. Os elementos são comparados usando compare.

sortInPlaceBy

O (média de log Em Em)

O caso de N^2 ()

-

-

-

-

Classifica os elementos de uma matriz transformando no local e usando a projeção determinada para as chaves. Os elementos são comparados usando compare.

sortInPlaceWith

O (média de log Em Em)

O caso de N^2 ()

-

-

-

-

Classifica os elementos de uma matriz transformando no local e usando a função de comparação como determinada ordem.

sortWith

O (média de log Em Em)

O caso de N^2 ()

O log de Em (Em)

-

-

-

Classifica os elementos de uma coleção, usando a função determinada de comparação como a ordem e retornando uma nova coleção.

sub

OS (N)

-

-

-

-

Cria uma matriz que contém o subrange dado especificado o índice inicial e o comprimento.

soma

OS (N)

OS (N)

OS (N)

-

-

Retorna a soma dos elementos na coleção.

sumBy

OS (N)

OS (N)

OS (N)

-

-

Retorna a soma dos resultados que são gerados aplicando a função para cada elemento da coleção.

parte final

-

o (1)

-

-

-

Retorna a lista sem seu primeiro elemento.

tomada

-

-

OS (N)

-

-

Retorna os elementos da seqüência até uma pontuação especificada.

takeWhile

-

-

o (1)

-

-

Retorna uma seqüência que, quando iterada, guarde os elementos da seqüência subjacente quando o predicado determinado retornar true e não retorna então não mais elemento.

toArray

-

OS (N)

OS (N)

OS (N)

OS (N)

Cria uma matriz de coleção dada.

toList

OS (N)

-

OS (N)

OS (N)

OS (N)

Cria uma lista de coleção dada.

toSeq

o (1)

o (1)

-

o (1)

o (1)

Cria uma seqüência de coleção dada.

truncado

-

-

o (1)

-

-

Retorna uma seqüência que, quando enumerada, retorna não mais do que os elementos de Em.

tryFind

OS (N)

OS (N)

OS (N)

Em o (log)

-

Procura por um elemento que satisfaz um determinado predicado.

tryFindIndex

OS (N)

OS (N)

OS (N)

-

-

Procura o primeiro elemento que satisfaz um determinado predicado e retorna o índice do elemento correspondente, ou se nenhum None tal elemento existe.

tryFindKey

-

-

-

Em o (log)

-

Retorna a chave do primeiro mapeamento na coleção que satisfaz o predicado determinado, ou retorna None se nenhum tal elemento existe.

tryPick

OS (N)

OS (N)

OS (N)

Em o (log)

-

Aplica a função determinada para sucessivos elementos, retornando o primeiro resultado onde a função retorna Some para qualquer valor. Se nenhum tal elemento existir, a operação retorna None.

desdobrar

-

-

OS (N)

-

-

Retorna uma seqüência que contém os elementos que a computação determinada produz.

união

-

-

-

-

O log Em M (*)

Calcula a união dos dois conjuntos.

unionMany

-

-

-

-

OS N1 (* N2…)

Calcula a união de uma seqüência de conjuntos.

abra o zíper

OS (N)

OS (N)

OS (N)

-

-

Divide uma lista de pares em duas listas.

unzip3

OS (N)

OS (N)

OS (N)

-

-

Divide uma lista triplicar-se em três listas.

da janela

-

-

OS (N)

-

-

Retorna uma seqüência do windows que gere deslizamento dos elementos recipientes que são desenhados a seqüência de entrada. Cada janela é retornada como uma matriz atualizado.

CEP

OS (N)

OS (N)

OS (N)

-

-

As combina duas coleções em uma lista de pares. As duas listas devem ter tamanhos iguais.

zip3

OS (N)

OS (N)

OS (N)

-

-

Combina as três coleções em uma lista triplicar-se. As listas devem ter tamanhos iguais.

Consulte também

Outros recursos

Tipos F#

Referência da linguagem F#