【发布时间】:2015-01-11 07:36:10
【问题描述】:
我在 List 上有 foreach 循环,例如:
foreach( var e in myList){
//do something here but except element at myList[0]
}
现在我需要省略第一个索引处元素的循环。我怎样才能做到这一点?
【问题讨论】:
我在 List 上有 foreach 循环,例如:
foreach( var e in myList){
//do something here but except element at myList[0]
}
现在我需要省略第一个索引处元素的循环。我怎样才能做到这一点?
【问题讨论】:
这样的?
foreach(var e in myList.Skip(1)){
}
【讨论】:
如果您需要跳过任意索引处的元素,使用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))
{
...
}
【讨论】:
你也可以试试这个:
foreach(var item in itemsList.Except(itemsToOmitList)){}
使用上述方法的好处是,您将能够忽略多个项目而不管它们的索引。
【讨论】: