IQueryable, IEnumerable e IList (dotnet)

Antônio Silva
2 min readMar 6, 2022
IQueryable, IEnumerable e IList

Estamos sujeitos a trabalhar com algum tipo de lista. Lista de usuário, lista de compras e etc.

Já pensou como podemos trabalhar da melhor maneira com essa infinidade de listas que estamos sujeitos?

Nesse tópico vamos conhecer as principais maneiras de se trabalhar com lista de dados e suas principais diferenças!

Collections são estruturas que possibilitam manipular grande quantidades de dados de maneira rápida e flexível.

IQueryable

Interface específica que contém um provedor de consulta (LINQ-To-SQL). Conseguimos criar um query filter de consulta na base de dados utilizando a linguagem LINQ e o retorno podemos transformar em um IEnumerable para maximizar a manipulação do resultado.

var query = dbUser.AsQueryble().Where(x => x.id == 1);

Nessa query a execução vai buscar exatamente o usuário de Id igual a 1 (um) na base de dados (Carregando na memória somente o necessário).

IEnumerable

Geralmente utilizado para processar elementos já carregados em memória.

Você pode fazer a consulta na base de dados utilizando um IEnumerable, mas essa busca retornará todos os elementos e seu filtro será feito em memória.

var query = dbUser.Where(x => x.Id == 1);

Nesse cenário o filtro é executado no Server, a consulta carrega a lista de usuário em memória e faz a filtragem dos dados (where).

IList

Coleção de dados não genéricos (precisa ser especificada o tipo de lista) que podem ser acessados através de um enumerador. IList é descendente de ICollection, base de todas as lista não genéricas.

Temos 3 categorias:

  • Leitura;
    A lista não pode ser modificada, imutável.
  • Tamanho Fixo;
    Lista de tamanho fixo, se na sua criação a lista for criada com 3 elementos, até o final do processo teremos 3 elementos. Permite a edição dos elementos já estabelecidos.
  • Tamanho variável;
    Permite adicionar, remover e modificar os item dessa lista. Geralmente utilizamos essa padrão de lista.

Referências

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Antônio Silva
Antônio Silva

Written by Antônio Silva

Sou Analista Desenvolvedor Especialista 👨‍💻; Sou um grande apaixonado na programação mobile e um grande sonhador com o futuro progressivo das PWA;

No responses yet

Write a response