Boa noite! Gostaria de saber como faço pra pegar o index do Array/Lista dentro do Foreach?
Boa noite! Gostaria de saber como faço pra pegar o index do Array/Lista dentro do Foreach?
Marcos,
O "for each" NÃO tem índice, somente o "for", mas é possível trapacear de várias formas...
... saiba como:
============================================
foreach with index [duplicate]
foreach com índice [duplicado]
MÉTODO DE EXTENSÃO:
public static void Each<T>(this IEnumerable<T> ie, Action<T, int> action)
{
var i = 0;
foreach (var e in ie) action(e, i++);
}
Outra forma:
foreach (var it in someCollection.Select((x, i) => new { Value = x, Index = i }) )
{
if (it.Index > SomeNumber) //
}
A forma mais "bobinha" de fazer:
int i = -1;
foreach (Widget w in widgets)
{
i++;
// do something
}
Outro exemplo de EXTENSÃO:
public struct EnumeratedInstance<T>
{
public long cnt;
public T item;
}
public static IEnumerable<EnumeratedInstance<T>> Enumerate<T>(this IEnumerable<T> collection)
{
long counter = 0;
foreach (var item in collection)
{
yield return new EnumeratedInstance<T>
{
cnt = counter,
item = item
};
counter++;
}
}
https://stackoverflow.com/questions/521687/foreach-with-index
============================================
Outros links interessantes:
============================================
Instruções de iteração – for, foreach, do e while
Artigo - 06/04/2023
A instrução foreach executa uma instrução ou um bloco de instruções para cada elemento em uma instância do tipo que implementa a interface System.Collections.IEnumerable ou System.Collections.Generic.IEnumerable, como mostra o seguinte exemplo:
https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/statements/iteration-statements
============================================
C# Foreach Loop
The foreach Loop
There is also a foreach loop, which is used exclusively to loop through elements in an array:
https://www.w3schools.com/cs/cs_foreach_loop.php
============================================
Se sua dúvida foi realmente respondida, por favor, não esqueça de fechar o tópico e se gostou da minha resposta me pontue, eu adoro este pontinhos!
[]'s,
Fabio I.