Estrarre un elemento in una determinata posizione da una lista non indicizzata con LINQ

Stefano Mostarda

di Stefano Mostarda, in LINQ, il 14 ottobre 2009 alle 08:00

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

IL CONTENUTO
IN PRIMO PIANO
MEDIA
IN EVIDENZA
MISC