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
Usare una container image come runner di GitHub Actions
Utilizzare Azure Cosmos DB con i vettori
Testare l'invio dei messaggi con Event Hubs Data Explorer
Generare un hash con SHA-3 in .NET
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Introduzione alle Container Queries
Gestire gli accessi con Token su Azure Container Registry
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Migrare una service connection a workload identity federation in Azure DevOps
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Creare una libreria CSS universale - Rotazione degli elementi
Gestire la cancellazione di una richiesta in streaming da Blazor
I più letti di oggi
- Effettuare shallow e deep copy di un reference type
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- Learn&Get 'Applicazioni del mondo reale con ASP.NET 2.0' - Milano
- Microsoft Security Bulletin di maggio 2008
- Preview 4 per ASP.NET MVC
- Speciale ASP.NET Charting: grafici per tutti i gusti!
- Resi noti i prezzi di Windows 7: in italiano dal 22 ottobre
- Il web per le masse: Microsoft presenta il nuovo editor gratuito WebMatrix
- Ritardo per il SP3 di Windows 2000
- UDDI, terza versione in arrivo