# MapIndexed

É gerada uma nova coleção com o resultado da função `mapping` aplicado em cada um dos elementos. Neste caso a função `mapping` além de receber o elemento, recebe seu índice.

| Parâmetros                                                         | Retorno               |
| ------------------------------------------------------------------ | --------------------- |
| <p>Func\<int, T, TResult> mapping</p><p>IEnumerable\<T> source</p> | IEnumerable\<TResult> |

## Como usar

&#x20;**Multiplicando os valores em uma coleção pelo valor respectivo de seu índice**

```csharp
//IEnumerable<int> source = { 1, 2, 3 }

IEnumerable<int> result = 
    source.MapIndexed(
        (index, value) => value * index);

//result = { 0, 2, 6 }
```

&#x20;**Retornando o índice e o elemento através de uma tupla**&#x20;

```csharp
//IEnumerable<int> source = { 1, 2, 3 }

IEnumerable<int> result = 
    source.MapIndexed(
        (index, value) => (index, value) );

//result = { (0,1), (1,2), (2,3) }
```
