2010-03-12 10 views
38

me gustaría iterar sobre los elementos de List<T>, excepto el primero, preservando el orden. ¿Hay una manera elegante de hacerlo con LINQ utilizando una declaración como:LINQ: Cómo omitir uno y luego tomar el resto de una secuencia

foreach (. Elemento var en list.Skip (1) TakeTheRest()) {....

He jugado con TakeWhile, pero no fue exitoso. ¿Probablemente también hay otra manera simple de hacerlo?

+0

Hmmm, ¿no se hizo esta pregunta ayer? – leppie

+0

¿Cuál pregunta? ¿Te importaría proporcionar el enlace? – Marcel

Respuesta

76

De la documentación para Skip:

no pasa por un número determinado de elementos en una secuencia y, a continuación, devuelve los elementos restantes.

lo que sólo necesita esto:

foreach (var item in list.Skip(1)) 
+0

Gracias hombre (golpeando mi cabeza contra el teclado por no ver esta solución obvia ...) – Marcel

+2

Y si quisiera tomar un cierto número de valores, simplemente haría 'foreach (var item in list.Skip (1). Take (count)) ' – Pat

9

Just Do:

foreach (var item in input.Skip(1)) 

Hay algo más de información sobre la MSDN y un ejemplo sencillo que es descargable here

5

¿No sería sea ​​...

foreach (var in list.Skip(1).AsEnumerable()) 
+1

No se necesita AsEnumerable, ya que la solución de Mark funciona perfectamente. – Marcel

+0

Saltar (1) de forma predeterminada lo hace Enumerable –

+2

¿Por qué esto tiene incluso 6 votos hacia arriba? –

Cuestiones relacionadas