Partilhar via


Coleções do .NET Framework com Visual Basic

O .NET Framework fornece classes especializadas para armazenamento e recuperação de dados.Essas classes oferecem suporte a pilhas, filas, listas e tabelas hash.A maioria das coleções de classes implementam as mesmas interfaces.Você pode criar suas próprias coleções de classe, se necessário, ao implementar essas interfaces.

Você deve determinar qual o tipo de coleção é mais adequada às suas necessidades.

Diferenças entre o Visual Basic e a coleção classes .NET Framework

As classes de coleção .NET Framework são definidas nos namespaces System.Collections, System.Collections.Generic, System.Collections.Specialized e System.Collections.ObjectModel.As principais diferenças entre as classes de coleção do Visual Basic e .NET Framework incluem o seguinte:

  • Índice base..NET Framework coleções são baseadas em zero, enquanto o Visual Basic coleção é baseada em um. Isso significa que os elementos de uma coleção Visual Basic têm valores de índice de 1 até o valor da Propriedades de Contagem ( Objeto de coleção).,enquanto os elementos de uma coleção .NET Framework têm valores de índice de 0 até 1 a menos do valor da propriedade da coleção Count.

  • Element type.A coleção Visual Basic suporta elementos do tipo Object.Essa coleção não é tipo-seguro — você pode adicionar um elemento de qualquer tipo de dados.Isso geralmente resulta em degradação do desempenho porque você deve converter os elementos de tipo de dados Object para seu tipo true.

    Algumas das coleções .NET Framework também possuem elementos do tipo Object, mas muitas outras são fortemente tipadas, significando que dão suporte a elementos de um tipo específico, o que as torna type-safe e geralmente resultam numa performance ótima.

  • Keyed elements.A coleção Visual Basic permite que você especifique uma chave quando você adiciona um elemento nela.A chave é uma cadeia de caracteres de valor único que você pode usar depois para acessar aquele elemento em particular.As coleções .NET Framework variam de acordo com as chaves.Algumas suportam chaves e outras não.

As classes System.Collections

As classes no namespace System.Collections não armazenam elementos como especificamente objetos tipados, mas como objetos do tipo Object.

A tabela abaixo lista algumas das classes comumente usadas:

Classe

Descrição

ArrayList

Implementa a interface IList, usando uma matriz cujo tamanho é aumentado dinamicamente como necessário.

BitArray

Gerencia uma matriz compacta de valores em bits, que é representada com valores Boolean, onde True indica que o bit está em (1) e False indica o bit está desativado (0).

Hashtable

Representa uma coleção de pares de chave / valor que são organizados com base no código Hash da chave.

Queue

Representa uma coleção de objetos first-in-first-out (FIFO).

Stack

Representa uma simples coleção de objetos não genéricos last-in-first-out (LIFO).

System.Collections.Generic e classes System.Collections.ObjectModel

Os namespacesSystem.Collections.Generic e System.Collections.ObjectModel fornecem tipos genéricos, que permitem que você crie coleções fortemente tipadas e especifique o tipo de dado dos elementos quando estes forem criados.

A tabela abaixo lista algumas das classes comumente usadas:

Classe

Descrição

Collection<T>

Fornece a classe base para uma coleção genérica.

Dictionary<TKey, TValue>

Representa uma coleção de pares chave / valor que são organizadas com base na chave.

KeyedCollection<TKey, TItem>

Fornece a classe base abstrata para uma coleção cujas chaves são incorporadas nos valores.

LinkedList<T>

Representa uma lista duplamente vinculada.

LinkedListNode<T>

Representa um nó em um LinkedList<T>.Esta classe não pode ser herdada.

List<T>

Implementa a interface IList<T>, usando uma matriz cujo tamanho é aumentado dinamicamente como necessário.

Queue<T>

Representa uma coleção de objetos first-in-first-out.

SortedDictionary<TKey, TValue>

Representa uma coleção de pares chave / valor que são classificadas na chave.

SortedList<TKey, TValue>

Representa uma coleção de pares chave/valor que são classificados por chave com base na implementação de IComparer<T> associada.

Stack<T>

Representa uma coleção left-in-first-out (LIFO) de tamanho variável de instâncias do mesmo tipo arbitrário.

ReadOnlyCollection<T>

Fornece a classe base para uma coleção de somente leitura genérica.

Classes System.Collections.Specialized

O namespace System.Collections.Specialized fornece classes de coleções especializadas e fortemente tipadas, como coleções de apenas cadeias de caracteres e listas encadeadas e dicionários híbridos.

A tabela abaixo lista algumas das classes comumente usadas:

Classe

Descrição

CollectionsUtil

Cria coleções que ignoraram maiúsculas e minúsculas em sequências.

HybridDictionary

Implementa IDictionary, usando um ListDictionary enquanto a coleção é pequena e em seguida, alternando para um Hashtable quando a coleção se torna grande.

ListDictionary

Implementa IDictionary usando uma lista encadeada individualmente.Recomendado para coleções que normalmente contêm 10 itens ou menos.

NameObjectCollectionBase

Fornece a base de uma classe abstrata para uma coleção de sequência associada a chaves e valores de objetos que podem ser acessadas com a chave ou com o índice.

NameValueCollection

Representa uma coleção de sequência associada a chaves e valores de sequência que podem ser acessadas com a chave ou com o índice.

OrderedDictionary

Representa uma coleção de pares de chave / valor que são ordenados baseados na chave ou índice.

StringCollection

Representa uma coleção de sequências.

StringDictionary

Implementa uma tabela de hash com chave e o valores fortemente tipados para ser sequências em vez de objetos.

Consulte também

Conceitos

Coleções em Visual Basic

Referência

Objetos de Coleção (Visual Basic)

Outros recursos

Indo além com Visual Basic