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 |
---|---|
Implementa a interface IList, usando uma matriz cujo tamanho é aumentado dinamicamente como necessário. |
|
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). |
|
Representa uma coleção de pares de chave / valor que são organizados com base no código Hash da chave. |
|
Representa uma coleção de objetos first-in-first-out (FIFO). |
|
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 |
---|---|
Fornece a classe base para uma coleção genérica. |
|
Representa uma coleção de pares chave / valor que são organizadas com base na chave. |
|
Fornece a classe base abstrata para uma coleção cujas chaves são incorporadas nos valores. |
|
Representa uma lista duplamente vinculada. |
|
Representa um nó em um LinkedList<T>.Esta classe não pode ser herdada. |
|
Implementa a interface IList<T>, usando uma matriz cujo tamanho é aumentado dinamicamente como necessário. |
|
Representa uma coleção de objetos first-in-first-out. |
|
Representa uma coleção de pares chave / valor que são classificadas na chave. |
|
Representa uma coleção de pares chave/valor que são classificados por chave com base na implementação de IComparer<T> associada. |
|
Representa uma coleção left-in-first-out (LIFO) de tamanho variável de instâncias do mesmo tipo arbitrário. |
|
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 |
---|---|
Cria coleções que ignoraram maiúsculas e minúsculas em sequências. |
|
Implementa IDictionary, usando um ListDictionary enquanto a coleção é pequena e em seguida, alternando para um Hashtable quando a coleção se torna grande. |
|
Implementa IDictionary usando uma lista encadeada individualmente.Recomendado para coleções que normalmente contêm 10 itens ou menos. |
|
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. |
|
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. |
|
Representa uma coleção de pares de chave / valor que são ordenados baseados na chave ou índice. |
|
Representa uma coleção de sequências. |
|
Implementa uma tabela de hash com chave e o valores fortemente tipados para ser sequências em vez de objetos. |
Consulte também
Conceitos
Referência
Objetos de Coleção (Visual Basic)