DOBON.NET DOBON.NETプログラミング掲示板過去ログ

IndexOfAny と LastIndexOfAny は同じ?

環境/言語:[vs2010 express]
分類:[.NET]

vb.net でIndexOfAny と LastIndexOfAny は同じですか.
後者は名前からして末尾から検索するものと思い込んでいたのですが
そういう動作ではないですね.
たしかにMSの解説も「先頭から」となっているんですが
じゃあ存在意味が不明です.
■No27221に返信(JKさんの記事)
> vb.net でIndexOfAny と LastIndexOfAny は同じですか.

たとえば「S = "Windows Azure Platform"」の場合、
S.IndexOfAny("o") は 4 を返し、
S.LastIndexOfAny("o") は 19 を返します。
http://msdn.microsoft.com/ja-jp/library/1d15dfa1.aspx
> vb.net でIndexOfAny と LastIndexOfAny は同じですか.
> 後者は名前からして末尾から検索するものと思い込んでいたのですが
> そういう動作ではないですね.
? LastIndexOfAny は末尾から検索しますが?

> たしかにMSの解説も「先頭から」となっているんですが
どこに「先頭から」と書かれているのでしょうか?
http://msdn.microsoft.com/ja-jp/library/1d15dfa1.aspx
には「インスタンスの最後の文字位置から検索を開始し、anyOf の文字が見つかるか、または最初の文字位置に到達するまで、インスタンスの先頭へ向かって逆方向に検索を実行します」と書かれています。

そう言う結論に至ったのは何か記述したコードが予想外の動作を示したからでしょうか?
それならばそのコードを書いてみて下さい。
いやとんでもない勘違いをしてしまいました.
LastIndexOfAny (chrs,n,m)
の引数mを,n番目文字以後のm個を表すと思い込んでいたのですが
正しくはn文字目以前のm個が対象だったのですね.
そのためいつも想定範囲の先頭1文字がヒットしてしまい
(=実は対象範囲での末尾),
お恥かしい質問をしてしまったわけです.
MSの解説の「先頭へ向かって」部分を混乱した頭で「先頭から」と受け取ってしまったようです.
お目汚し失礼しました. orz
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板