LINQ:如何跳过一个元素然后获取序列中的其余元素

61
我想迭代一个 List<T> 中除第一个元素外的所有项,并保持顺序。使用LINQ是否有一种优雅的方式来实现,类似于以下语句:

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

我尝试过使用TakeWhile,但没有成功。也可能有其他简单的方法吗?

这个问题昨天不是已经问过了吗? - leppie
哪个问题?您介意提供链接吗? - Marcel
3个回答

117

根据Skip文档:

跳过指定数量的元素,然后返回剩余的元素。

所以您只需要这样做:

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

谢谢你,兄弟(我为没有看到这个显而易见的解决方案而感到头疼不已...) - Marcel
3
如果你想选取特定数量的数值,可以使用foreach (var item in list.Skip(1).Take(count))。其中,Skip(1)用于跳过列表中的第一个元素,Take(count)用于选取指定数量的元素。 - Pat

10

只需要这样做:

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

Microsoft Learn上有更多的信息。


5

Wouldn't it be...

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

1
AsEnumerable 不是必需的,因为 Mark 的解决方案完美地工作。 - Marcel
默认情况下,Skip(1) 使其可枚举。 - Ajay Suwalka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接