Por el momento, la manera más clara y no ambigua para describir una variable, parámetro o campo de tipo "IEnumerable <Foo>" es llamarlo un "IEnumerable <foo>", "IEnumerable (Of foo)", o "IEnumerable of foo". Siendo un programador de VB, prefiero la sintaxis intermedia, especialmente porque no usa signos de puntuación que puedan confundirse con el marcado HTML; al hablar, la última forma sería la pronunciación más natural (con la "I" inicial representando su propia sílaba) excepto en los casos que involucran genéricos anidados, cuando pueden requerirse otras señales de pronunciación para indicar el anidamiento preciso.
Algunas de las clases que implementan interfaces genéricas o no genéricas (*) IEnumerable son colecciones, pero otras no. Algunos son iteradores; algunos no Los términos "colección" e "iterador" no son realmente adecuados a menos que uno sepa que un IEnumerable particular será de hecho una colección o un iterador.El término "iterador" tiene un problema adicional, compartido por el término "secuencia": no todos los iteradores o secuencias implementan IEnumerable; algunos implementan IEnumerator y algunos implementan un método GetEnumerator pero no implementan IEnumerable (por ejemplo, porque desean permitir "foreach" pero no desean prometer todos los comportamientos implicados por IEnumerable). Si uno desea evitar la jerga, el término "secuencia reutilizable" puede ser bueno. No es inequívoco, porque podría referirse a las clases que tienen un método GetEnumerator pero no implementan IEnumerable, o posiblemente a los objetos IEnumerator cuyo método Restablecer realmente restablece la enumeración, pero excluye los iteradores de uso único.
(*) El término "IEnumerable" de aquí en adelante se referirá a IEnumerable e IEnumerable <T> indistintamente. Del mismo modo, "IEnumerator".
Me refiero sobre todo como una ** colección ** :) – Samich
marcado CW por solicitud de OP –
Normalmente me refiero a un Enumerable de Foo :-) Así que una secuencia . – xanatos