文字列を文字列で分割するTweet手っ取り早い方法としてVB.NETの固有の関数を用いる方法がある。一定の条件が揃っていればそれよりも高速に分割が可能である。これについて考察した内容を述べてみる。C#のstringにSplit機能があるが、これは「文字」による分割をサポートしてはいるが「文字列」による分割のオーバーロードメソッドは存在しない。よって他の方法を用いる必要があるのだが、一般的にVB.NET固有の関数を利用する方法が挙げられる。VB.NET関数による文字列の分割はStrings.Split関数で行える。Runtime』を追加する、あるいは以下のコンパイルオプションを指定する必要がある。Microsoft.VisualBasic;』の一行を付け加える。『ABC[SPRIT]DEF[SPRIT]GHI[SPRIT]JKL』なんて文字列を『[SPRIT]』という文字列で分割したいときは以下のようなコードを書く。CompareMethod.Binary);[/csharp]引数の詳細に関しては各自ググって欲しい。4番目の引数を変えることでいろいろな場面に対応できるのがこの関数の魅力だ。ある条件を満たせばVB.NET関数を使わずに高速で分割処理ができる方法がある。その必要条件を挙げると...区切り文字列は完全一致であり、大文字小文字等の区別はしない対象文字列には絶対出現しない文字を挙げることができるさて、この条件の下でなにをするかというと、Replaceで区切り文字列を任意の一文字に置き換えて、置き換えた文字を区切りにSplitで分割する!ということ。実際にやってみるとこんな感じ。“分”).Split(‘分’);[/csharp]これは「分」という文字がtarget文字列の中に絶対含まれないことを想定しているものだ。何気にこいつが一番早い。ためしに速度比較してみる。422msという具合。値型のボックス化は高コストTweetC#高速化SNSでもご購読できます。TwitterでフォローするFeedlyでフォローするたかおファン(surface0)1983年生まれ。趣味はエレキギターなど。最近やってるゲームはWoWs、プリコネ、デレステ。