List<string> liste = new List<String>
{
"A","B","C","D"
};
foreach (var item in liste)
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
for (int i = 0; i < liste.Count; i++)
{
if (i == 0)
continue;
System.Diagnostics.Debug.WriteLine(liste[i].ToString());
}
Run Code Online (Sandbox Code Playgroud)
如何跳过foreach循环中的特定位置?我不想评估任何值,只是跳过位置x.
它必须是一个特定的位置.可以选择位置0或位置7.
Eli*_*ing 20
跳过列表中的第一项非常容易:
foreach(var item in list.Skip(1))
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)
如果你想在索引处跳过任何其他元素n,你可以这样写:
foreach(var item in list.Where((a,b) => b != n))
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我使用一个带有两个参数的lambda表达式: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++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许你写这样的东西来跳过一个项目:
foreach(var item in list.SkipAt(2))
{
System.Diagnostics.Debug.WriteLine(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17879 次 |
| 最近记录: |