Sobes.tech
Junior

O que é IEnumerable em C#?

sobes.tech IA

Resposta da IA

IEnumerable em C# é uma interface definida no espaço de nomes System.Collections. Ela fornece uma forma geral de percorrer (iterar) os elementos de uma coleção.

Características principais do IEnumerable:

  • Acesso por iterador: Define o método GetEnumerator(), que retorna um objeto que implementa a interface IEnumerator. IEnumerator permite avançar sequencialmente de um elemento da coleção para outro.
  • Somente leitura: IEnumerable permite apenas percorrer os elementos. Não fornece métodos para adicionar, remover ou modificar elementos da coleção.
  • Carregamento preguiçoso: O uso de IEnumerable muitas vezes leva a um carregamento preguiçoso. Os elementos são gerados ou carregados apenas conforme necessário durante a iteração.
  • Base do LINQ: IEnumerable é uma interface fundamental para muitas operações do LINQ. Os métodos de extensão do LINQ (como Where, Select, OrderBy) trabalham com coleções que implementam IEnumerable, permitindo criar cadeias de operações.

Exemplo de uso:

// Criar uma lista de strings
List<string> frutas = new List<string> { "maçã", "banana", "cereja" };

// Iterar sobre os elementos da lista usando foreach, que funciona com IEnumerable
foreach (string fruta in frutas)
{
    // Exibir cada fruta
    Console.WriteLine(fruta);
}

Interfaces relacionadas:

Interface Descrição
IEnumerable Fornece a enumeração dos elementos de uma coleção
IEnumerable<T> Versão genérica de IEnumerable para coleções tipadas
ICollection Estende IEnumerable, adiciona métodos para tamanho, adição/remoção de elementos (não universal)
ICollection<T> Versão genérica de ICollection
IList<T> Estende ICollection<T>, adiciona acesso aos elementos por índice