如何在列表上使用foreach循环除了某些索引处的元素?

时间:2015-01-11 07:36:11

标签: c# loops foreach

我在List上有foreach循环,如:

foreach( var e in myList){

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

}

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

3 个答案:

答案 0 :(得分:12)

这样的东西?

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

}

答案 1 :(得分:3)

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

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

如果您需要先跳过 - 请使用。{Clip}(1),如https://stackoverflow.com/a/27884993/477420

所示

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

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

答案 2 :(得分:1)

您也可以尝试使用它:

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

使用上述方法的好处是,无论索引如何,您都可以省略多个项目。