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
Centralizzare e governare MCP server e Skill con Azure API Center
Integrare modelli AI in un workflow di GitHub
Dallo sviluppo locale ad Azure con .NET Aspire
Keynote .NET Conference Italia 2025
Semplificare i deployment con le label in Azure Container App
Blue/Green Release in locale con .NET Aspire
Pubblicare un MCP Server in GitHub MCP Registry
Ricerca delle GitHub issue tramite operatori logici
Validazione personalizzata nelle Minimal API di ASP.NET Core
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Stop alle password con Azure Managed Identity
Interagire con Azure DevOps tramite MCP Server


