7

在 vb 中使用 for each 循环时,有没有办法从零以外的索引开始?

尝试时收到错误“输入字符串格式不正确”:

For Each segment As String in p

If not p(0) Then

4

5 回答 5

11

您可以使用 LINQ 的Enumerable.Skip 方法在迭代之前减少您的列表:

For Each segment As String in p.Skip(1)
    ...
Next
于 2012-07-19T15:20:21.177 回答
3

for each我认为您误解了循环和循环之间的区别for

for each将遍历数组中的每个元素 for将遍历数组的索引

for i = 0 to p.size //change 0 to the index you want to start
    p(i)
    ...
next
于 2012-07-19T15:22:45.107 回答
1

要获得比 Skip 方法更具体的方法,您可以编写一个 lambda,它只调用在某些条件下传递给它的函数。

lambda 会像 foreach 循环一样进行枚举,但也会调用作为参数传递给它的委托来检查条件。

于 2012-07-19T15:25:04.960 回答
1

假设p有索引器,如ArrayorIList

For i As Integer = 1 To p.Count - 1
    p(i)
Next

这假设您使用的是标准Option Base 0

于 2012-07-19T15:26:38.103 回答
1

这将跳过第一个元素,

for each segment as string in p.Skip(1)
. . . .
next

如果你想跳过前 5 个元素. . . in p.Skip(5)

于 2012-07-19T15:21:49.180 回答