ExpertiDict

C# · Essencial · Inglês · Técnico

IEnumerable

/ˌaɪ ɪˈnuməɹəbəl/substantivo

Interface mais básica de sequência: expõe GetEnumerator para percorrer elementos um a um com foreach. As coleções do .NET e os resultados do LINQ to Objects a implementam.

Onde usar

Aparece em parâmetros de método que só precisam ler uma sequência, aceitando array, lista ou iterador. Receber IEnumerable<T> deixa a API flexível, mas cuidado com enumerar a mesma sequência duas vezes.

Em código

double Media(IEnumerable<int> xs)
{
  int soma = 0, n = 0;
  foreach (var x in xs) { soma += x; n++; }
  return n == 0 ? 0 : (double)soma / n;
}

Exemplos

Accept an IEnumerable so callers can pass any collection.

Aceite um IEnumerable para o chamador poder passar qualquer coleção.

Careful, that IEnumerable gets enumerated twice.

Cuidado, esse IEnumerable é enumerado duas vezes.

Cuidado

Não presuma que um IEnumerable já está em memória: pode ser uma consulta adiada, e cada enumeração a executa de novo.

Sinônimos

sequência

Veja também

Todos os termos de C#