Quando usiamo un ciclo foreach per scorrere gli elementi di una lista, una delle informazioni che spesso torna utile è l'indice dell'elemento nella lista. Come alternativa possiamo usare il ciclo for, ma questo potrebbe necessitare di un conteggio degli elementi qualora la lista non abbia una proprietà Count. Ad esempio, nel caso di IEnumerable[T][ non abbiamo la proprietà Count, ma dobbiamo usare il metodo Count che conta tutti gli elementi.
Con .NET 9, abbiamo una nuova freccia nel nostro arco che unisce i vantaggi di uno e dell'altro metodo: il metodo di LINQ Index. Questo extension method prende in input una lista e ritorna un enumeratore della lista dove ogni elemento è una tupla che contiene l'indice dellelemento corrente e l'elemento corrente: IEnumerable<(int Index, TSource Item)>. Vediamone un esempio nel codice qui sotto.
var people = new List<People>
{
new("Stefano", "Mostarda"),
new("Daniele", "Bochicchio"),
new("Cristian", "Civera"),
};
foreach (var (i, person) in people.Index())
{
Console.WriteLine($"{i} - {person.FirstName} {person.LastName}");
}L'esempio mostra come l'uso del foreach sia sempre lo stesso ma col vantaggio di avere anche l'indice come nel ciclo for.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Testare il failover sulle region in Azure Storage
Abilitare .NET 10 su Azure App Service e Azure Functions
Esporre un server MCP con Azure API Management
Importare un servizio esterno in .NET Aspire
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Gestione delle scrollbar dinamiche in HTML e CSS
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Effettuare un clone parziale di un repository di GitHub
Controllare la telemetria con .NET Aspire
Gestire progetti .NET + React in .NET Aspire
Rendere i propri workflow e le GitHub Action utilizzate più sicure




