【问题标题】:LINQ: How to skip one then take the rest of a sequenceLINQ:如何跳过一个然后采取序列的其余部分
【发布时间】:2011-01-26 18:25:02
【问题描述】:

我想遍历 List<T> 的项目,除了第一个,保留顺序。有没有一种优雅的方式来使用 LINQ 使用如下语句:

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

我玩过TakeWhile,但没有成功。可能还有另一种简单的方法吗?

【问题讨论】:

  • 嗯,这个问题不是昨天问的吗?
  • 哪个问题?您介意提供链接吗?

标签: c# linq list loops skip


【解决方案1】:

来自Skip 的文档:

绕过序列中指定数量的元素,然后返回剩余的元素。

所以你只需要这个:

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

【讨论】:

  • 谢谢哥们(因为没有看到这个明显的解决方案,我把头撞在键盘上……)
  • 如果您想获取一定数量的值,您只需执行foreach (var item in list.Skip(1).Take(count))
【解决方案2】:

只要做:

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

关于MSDN 的更多信息和一个可下载的简单示例here

【讨论】:

    【解决方案3】:

    难道不是……

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

    【讨论】:

    • 不需要 AsEnumerable,因为 Mark 的解决方案非常有效。
    • Skip(1) 默认使其可枚举
    猜你喜欢
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2015-04-14
    • 2012-03-23
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    相关资源
    最近更新 更多