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
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Utilizzare i variable font nel CSS
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Utilizzare DeepSeek R1 con Azure AI
Utilizzare Hybrid Cache in .NET 9
Anonimizzare i dati sensibili nei log di Azure Front Door
Migliorare l'organizzazione delle risorse con Azure Policy
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Gestione degli eventi nei Web component HTML
Proteggere le risorse Azure con private link e private endpoints
Applicare un filtro per recuperare alcune issue di GitHub
I più letti di oggi
- Utilizzare il pattern matching per semplificare le espressioni
- Utilizzare requestAnimationFrame per animazioni fluide
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare WebJobs su Linux con Azure App Service
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!