Molto spesso capita di voler trovare l'indice di un determinato oggetto in una lista. Se abbiamo già l'oggetto da ricercare possiamo utilizzare il metodo IndexOf che molte liste mettono a disposizione. A volte però non abbiamo a disposizione l'oggetto bensì una query LINQ che specifica le caratteristiche dell'oggetto da ricercare. In questo script vediamo come creare un extension method che ritorna l'indice del primo oggetto che corrisponde alle caratteristiche specificate dalla query LINQ. Vediamo prima il codice.
public static int FindIndex<T>(this IEnumerable<T> items, Func<T, bool> predicate) { var result = 0; foreach (var item in items) { if (predicate(item)) return result; result++; } return -1; }
Il metodo cicla su tutti gli elementi della lista e per ognuno esegue il predicato in input. Se il predicato torna true, allora viene restituito l'indice dell'elemento, altrimenti si va avanti. Se si arriva alla fine del ciclo significa che nessun elemento ha soddisfatto il predicato e quindi viene restituito -1.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare WebJobs su Linux con Azure App Service
Ridurre il reflow ottimizzando il CSS
Migliorare l'organizzazione delle risorse con Azure Policy
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Introduzione ai web component HTML
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Integrare SQL Server in un progetto .NET Aspire
Utilizzare i variable font nel CSS