A volte capita di lavorare con un Dictionary o con altre strutture simili che non permettono l'accesso ad un elemento in base alla sua posizione, ma soltanto in base alla chiave.
In questi casi, se si vuole accedere ad un oggetto in base alla sua posizione bisogna ricorrere al metodo ElementAt di LINQ il quale accetta in input l'indice a cui ricercare l'elemento. Se non esiste nessun elemento all'indice ricercato, viene sollevata un'eccezione. In alternativa, esiste il metodo ElementAtOrDefault che restituisce il valore di default dell'elemento ricercato qualora questo non esistesse.
var elementi = new List<string> { "elemento1", "elemento2", "elemento3" }; var item1 = elementi.ElementAt(0); //torna "elemento1" var item2 = elementi.ElementAt(3); //solleva un'eccezione var item3 = elementi.ElementAtOrDefault(3); //restituisce null
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare i metodi Linq MinBy e MaxBy per semplificare le ricerche degli elementi minimi e massimi in liste di oggetti complessi con LINQ
Utilizzare il metodo Chunk per creare blocchi di oggetti di uguali dimensioni partendo da una lista
Semplificare con un extension method l'aggiunta di filtri a run time nelle query LINQ
Impostare un default custom per i metodi LINQ che tornano il valore di default