DEV Community

Cover image for A arte das coleções em .NET - Intro
Thaise Medeiros for Unhacked

Posted on • Updated on

A arte das coleções em .NET - Intro

Eu tenho estudado bastante sobre estrutura de dados e coleções em .NET. É incrível como entender o funcionamento e a aplicação de cada uma tem o poder de evoluir significativamente a qualidade do código que escrevemos. Por este motivo, decidi escrever uma série de artigos abordando as diferenças entre elas e quando utilizá-las.

O que são coleções?

"Dados semelhantes podem normalmente ser tratados com mais eficiência quando armazenados e manipulados como uma coleção."

Podemos encontrar as coleções na classe System.Array ou nas classes dentro dos namespaces: System.Collections, System.Collections.Generic, System.Collections.Concurrent e System.Collections.Immutable. Utilizando-as, teremos acesso aos métodos para adicionar, remover e modificar os elementos contidos em uma coleção.

Os dois tipos principais de coleções são as genéricas (System.Collections.Generic) e as não genéricas (System.Collections). A diferença entre elas é que as genéricas possibilitam criar coleções fortemente tipadas. Para exemplificar, imagine que tenhamos a classe Aluno conforme demonstrado abaixo:

public class Aluno
{
    public long Id {get; set;}
    public string Nome {get; set;}
}
Enter fullscreen mode Exit fullscreen mode

É possível criar uma coleção de alunos utilizando a nossa classe Aluno como tipo. Sendo assim, teríamos a possibilidade de manipular os itens sem a necessidade de conversão, afastando o tão temido boxing/unboxing entre os tipos. Por este motivo, a Microsoft aconselha a utilização de coleções genéricas sempre que possível pois elas fornecem melhor desempenho e segurança de tipos.

As coleções concorrentes (System.Collections.Concurrent) permitem operações thread-safe eficientes quando temos acesso à coleção através de múltiplas threads e as imutáveis (System.Collections.Immutable) também são thread-safe e, como o nome diz, esta coleção não pode ser modificada: as operações são feitas em cima de uma cópia da coleção original.

Para esta série, iremos focar nas coleções genéricas e não genéricas o que vai nos dar muito assunto!

Conclusão

As coleções muitas das vezes são tratadas como simples e não damos a devida importância aos tipos e onde se encaixam. Após essa introdução e apresentação sobre coleções no .NET, no próximo post falaremos sobre uma coleção que provavelmente todo mundo já ouviu falar e é muito utilizada: Lista.

Referências:

Collections and Data Structures
Selecting a Collection Class

Top comments (0)