7

vbでforeachループを使用するときに、ゼロ以外のインデックスから開始する方法はありますか?

試行すると、「入力文字列が正しい形式ではありませんでした」というエラーが表示されました。

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

これにより、最初の要素がスキップされます。

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

最初の5つの要素をスキップしたい場合. . . in p.Skip(5)

于 2012-07-19T15:21:49.180 に答える
1

Skipメソッドよりも具体的にするために、特定の条件下で渡された関数のみを呼び出すラムダを作成できます。

ラムダはforeachループのように列挙しますが、条件をチェックするための引数としてラムダに渡されたデリゲートも呼び出します。

于 2012-07-19T15:25:04.960 に答える
1

またはpのようなインデクサーがあると仮定しますArrayIList

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

これは、標準を使用していることを前提としていますOption Base 0

于 2012-07-19T15:26:38.103 に答える