Первый элемент в списке очень легко пропустить:
foreach(var item in list.Skip(1))
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
Если вы хотите пропустить любой другой элемент с индексом n
, вы можете написать это:
foreach(var item in list.Where((a,b) => b != n))
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
В этом примере я использую лямбда-выражение, которое принимает два аргумента: a
и b
. Аргумент a
- это сам элемент, а аргумент b
- индекс элемента.
Соответствующие страницы в MSDN, описывающие эти методы расширения:
Вы даже можете написать свой собственный метод расширения, который позволяет пропустить элемент в списке:
public static class MyEnumerableExtensions
{
public static IEnumerable<T> SkipAt<T>(this IEnumerable<T> list, int index)
{
var i = 0;
foreach(var item in list)
{
if(i != index)
yield return item;
i++;
}
}
}
Это позволит вам написать что-то вроде этого, чтобы пропустить элемент:
foreach(var item in list.SkipAt(2))
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}