空談録

http://artfulplace.net/blogs/ からひっこしつつ

C#における先頭文字の取得

ただのメモです

C#である先頭の文字列を取得する場合、とはいってもそもそもどういう文字列取得かにもよりますが、特定の文字までの文字列を取得する場合とりあえず上がる手段としては
・string.Substring
・string.Remove
・string.Split
とかでしょうか

これらについてどれが一番早そうなのかなーって思って適当に調べてみました

今回の目的は具体的に言えば"hogehogehogehoge.fugafugafugafugafuga.fooooooooooo.piyo"の文字列からhogehogehogehogeの部分を取得することになります
文字列長、およびSplitによる要素数の平均はこの程度という想定です

結果から言うと、処理時間は Substring <= Remove << Split の順となります

適当な計測結果がこちら

Split : 00:00:00.2002613
Remove : 00:00:00.0157689
Substring : 00:00:00.0142287

各100000回やった結果です
Splitがすさまじく遅いです。返す結果が違うのでしょうがない気もしますが

RemoveとSubstringはどっちが早いとは言えないです。こちらの環境でRemoveが早い場合とSubstringが早い場合の両方があって安定しなかったので好きな方でいいのかなぁとも
そうなるとRemoveのほうがコードも短い気もします


というだけの記事です
そこまで気にしなくてもいいのかなぁとは思いつつもあんまり遅いのもなぁという

この辺で