【问题标题】:How to use foreach loop on list except elements at some index?如何在列表上使用 foreach 循环,除了某个索引处的元素?
【发布时间】:2015-01-11 07:36:10
【问题描述】:

我在 List 上有 foreach 循环,例如:

foreach( var e in myList){

//do something here but except  element at myList[0]

}

现在我需要省略第一个索引处元素的循环。我怎样才能做到这一点?

【问题讨论】:

    标签: c# loops foreach


    【解决方案1】:

    这样的?

    foreach(var e in myList.Skip(1)){
    
    }
    

    【讨论】:

    • 是的,没错。感谢您的帮助@Ivan Crojach
    • 太棒了!只是不要忘记将其标记为正确答案;)
    【解决方案2】:

    如果您需要跳过任意索引处的元素,使用for 会更合适:

    for(var index = 0; index < myList.Count; index++){
         if (ShouldSkip(index))
              continue;
         // handle other elements as normal
    }
    

    如果您需要先跳过 - 使用 .Skip(1),如 https://stackoverflow.com/a/27884993/477420 所示

    如果您想将foreach 与任意索引一起使用,您可以使用.Where 进行过滤:

     foreach(var e in myList.Where((item, index) => index < 3 || index > 7))
     {
        ...
     }
    

    【讨论】:

      【解决方案3】:

      你也可以试试这个:

      foreach(var item in itemsList.Except(itemsToOmitList)){}
      

      使用上述方法的好处是,您将能够忽略多个项目而不管它们的索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 1970-01-01
        • 2020-03-15
        • 1970-01-01
        • 2018-10-22
        • 2017-10-28
        相关资源
        最近更新 更多