2010-03-12 3 views
38

Я хотел бы перебрать элементы List<T>, кроме первого, сохраняя заказ. Есть элегантный способ сделать это с помощью LINQ заявления, как:LINQ: как пропустить один, а затем взять остальную последовательность

Еогеаспа (. Пункт уага в list.Skip (1) TakeTheRest()) {....

Я играл с TakeWhile, но не был успешным. Возможно, есть и другой, простой способ сделать это?

+0

Хммм, разве этот вопрос не задавался вчера? – leppie

+0

Какой вопрос? Не могли бы вы предоставить ссылку? – Marcel

ответ

76

Из документации для Skip:

Пропускает заданное число элементов в последовательности и возвращает остальные элементы.

Так что вам просто нужно это:

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

Спасибо человеку (ударив головой о клавиатуру, чтобы не видеть это очевидное решение ...) – Marcel

+2

И если вы хотите взять определенное количество значений, вы просто сделаете 'foreach (элемент var в списке.Skip (1). Take (count)) ' – Pat

9

Вобще:

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

Там еще информация о MSDN и простой пример, это загружаемое here

5

Не был бы это будет ...

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

AsEnumerable не нужен, так как решение Mark отлично работает. – Marcel

+0

Пропустить (1) по умолчанию делает его перечислимым –

+2

Почему у этого даже есть 6 upvotes? –

Смежные вопросы