C# 如何使foreach从列表中读取数据而不是从第一项中读取数据?
我有以下代码:C# 如何使foreach从列表中读取数据而不是从第一项中读取数据?,c#,C#,我有以下代码: var rows = sheet.Descendants<Row>().ToList(); foreach (Row row in rows) { //some logic } 在上面的代码中,我得到了一些行集合并从中生成列表, 然后我在列表上创建foreach循环 我需要使foreach从行列表中的第二项读取,而不是从实现的第一项读取 实现它的优雅方式是什么 您可以使用 这将从第二行开始。是否保留foreach?如果您愿意使用for循环,您可以将迭代器初始化
var rows = sheet.Descendants<Row>().ToList();
foreach (Row row in rows)
{
//some logic
}
在上面的代码中,我得到了一些行集合并从中生成列表,
然后我在列表上创建foreach循环
我需要使foreach从行列表中的第二项读取,而不是从实现的第一项读取
实现它的优雅方式是什么 您可以使用
这将从第二行开始。是否保留foreach?如果您愿意使用for循环,您可以将迭代器初始化为1以跳过第一个结果。这里的意思真的不清楚。您目前正在迭代所有行,仅此而已。您的意思是要迭代除第一个元素之外的所有元素吗?如果是这样,使用Skip…听起来你甚至不需要for循环,如果你只想要第二项。列表[1]零基索引材料化,即ToList是冗余的here@DmitryBychenko您是对的,它在循环上下文中是多余的,但是这并不意味着它以后不会在代码中作为IList使用。我添加了一条注释只是为了确定,但是删除它是不正确的,因为它可能会破坏OP的代码。
var rows = sheet.Descendants<Row>().ToList(); //.ToList() is not neccesarry for this example, but may be necessary later on.
foreach (Row row in rows.Skip(1))
{
//some logic
}