• 締切済み

array.indexof と array.laseindexofについて

dim x() as integer = new integer(7) {1,5,7,9,11,5,9,2} で、 array.indexof(x,9,4)はなぜ6がかえるのでしょうか。 lastindexofの場合は3がかえります。 また、array.lastindexof(x,5,4,3)は-1がかえされます。 なぜでしょうか。 すみませんが、教えてください。。。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

IndexOfは順方向に検索します パラメータ startIndexが0より大きい場合は渡された配列の startIndex以降を検索します したがって IndexOf( x, 9, 4 )と指示すると 配列xの5番目以降が検索対象になります ... 11,5,9,2 x(4)の11以降で検索するので見つかるのが x(6)の9となります LastIndexOfは逆方向に検索します つまり渡された配列の末尾から先頭に向かって検索するのです LastIndexOf( x, 9, 4 )と指示した場合 配列xの5番目以前が検索の対象になります ... 1,5,7,9,11 したがって x(3)の9が見つかるのです LastIndexOf(x,5,4,3)と指示すると 配列xの5番目の要素から3要素が検索対象になります つまり 7,9,11 の3要素です この中に 検索する『5』が存在しないので -1が結果となります

lotus123
質問者

お礼

明快な回答ありがとうございます。 大変よく分かりました。 ありがとうございました。