LINQ: как пропустить один, а затем взять остальную часть последовательности

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

foreach (элемент var в списке.Пропуска(1).TakeTheRest ()) {....

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

3 ответов


из документации пропустить:

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

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

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

Так же:

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

есть дополнительная информация о MSDN и простой пример, который можно загрузить здесь


не было бы...

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