Oi Gabriel
Eu não entendi direito o que você quis dizer com manipulador de arrays, você poderia explicar um pouco melhor?
No C# existem basicamente dois Enumerable
s que são importantes para o seu código, a classe Enumerable
que é utilizada pelo LINQ e o IEnumerable
que é uma interface implementada pelas collections do C#.
A classe Enumerable
é utilizada basicamente para implementar todos os métodos que são utilizados pelo LINQ. Um ponto que não foi abordado no curso é que todos os métodos do LINQ são extension methods que são importados do namespace System.Linq
(Se você tirar a importação desse namespace do seu arquivo .cs
você não consegue mais utilizar o LINQ) e são implementados pela classe System.Linq.Enumerable
.
Já o IEnumerable
é a interface do C# que é utilizada pelo comando foreach
da linguagem. Qualquer classe que implemente essa interface pode ser utilizada dentro do comando foreach
da linguagem. Implementações dessa interface incluem as coleções e os arrays do C#.
Logo utilizamos o IEnumerable apenas em situações em que queremos apenas iterar na coleção, em qualquer outra situação, devemos utilizar um tipo mais específico como o List
, IList
, ISet
, HashSet
, SortedSet
, ICollection
e arrays.
Para uma explicação alternativa sobre as coleções você pode consultar a apostila aberta da formação C# da caelum:
Capítulo sobre listas: https://www.caelum.com.br/apostila-csharp-orientacao-objetos/trabalhando-com-listas/
Capítulo sobre conjuntos e dicionários: https://www.caelum.com.br/apostila-csharp-orientacao-objetos/lidando-com-conjuntos/