> For the complete documentation index, see [llms.txt](https://gabriel-schade-cardoso.gitbook.io/tango-br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gabriel-schade-cardoso.gitbook.io/tango-br/modulos/collection/chunkbysize.md).

# ChunkBySize

Divide uma coleção em vários pedaços de acordo com os parâmetros.

| Parâmetros                                        | Retorno                       |
| ------------------------------------------------- | ----------------------------- |
| <p>int chunkSize</p><p>IEnumerable\<T> source</p> | IEnumerable\<IEnumerable\<T>> |

## Exceções

| Tipo              | Situação                                                |
| ----------------- | ------------------------------------------------------- |
| ArgumentException | Quando o parâmetro chunkSize não for um valor positivo. |

## Como usar

É gerada uma nova coleção onde cada elemento também é um pedaço da coleção com o tamanho definido por `chunkSize`. Nos casos onde a coleção não for divisível pelo `chunkSize` será gerado um último pedaço com os elementos restantes.

&#x20;**Dividindo uma coleção em pedaços iguais**&#x20;

```csharp
//IEnumerable<int> source = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
IEnumerable<IEnumerable<int>> result = source.ChunkBySize(2);

//result = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} }
```

&#x20;**Dividindo uma coleção em pedaços de tamanho não divisível pela quantidade de elementos**&#x20;

```csharp
//IEnumerable<int> source = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
IEnumerable<IEnumerable<int>> result = source.ChunkBySize(3);

//result = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9},  {10} }
```
