2010-03-16 9 views

Respuesta

38
var nthItem = items.Skip(n).First(); 
+1

Cuenta de _Skip (int conteo): El número de elementos para omitir antes de devolver los elementos restantes. Por lo tanto, si omitimos n, obtenemos n-ésimo índice n-ésimo elemento (comenzando desde 1), ¿no? Al igual que en esta respuesta: http://stackoverflow.com/a/824652/3958365 – ErTR

5

Usted puede utilizar saltar y tomar.

var result = myData.OrderBy(<your order by>).Skip(5).Take(1); 
+1

Take no devuelve un elemento, devuelve una secuencia (con un elemento en este caso). –

+0

@Mark: de hecho lo hace, y creo que es mejor que hayamos dado al OP ambas opciones. – cjk

3
var nthItem = items.Skip(n-1).FirstOrDefault(); 
+0

n-1 para obtener el enésimo elemento ... – Omar

18

Una alternativa (.Net 3.5 y posterior) es utilizar ElementAtOrDefault.

var nthItem = items.ElementAtOrDefault(n-1); 

El índice del método es de base cero, por lo que si desea que el tercer elemento, pasa 2 para el índice.