Trimの動作

C#のStringのTrim()メソッドは引数を渡さなければ、半角スペースだけではなく、全角スペースも削除してしまう。


String baseString = "あいうえお     ";
String trimString;
DateTime start = DateTime.Now;
for( int i = 0; i < 1000000; i++ )
{
trimString = baseString.TrimEnd();
}
DateTime end = DateTime.Now;

Console.WriteLine( "処理時間は" + (end - start).TotalSeconds);

start = DateTime.Now;
for( int i = 0; i < 1000000; i++ )
{
trimString = baseString.TrimEnd( " ".ToCharArray() );
}
end = DateTime.Now;

Console.WriteLine( "処理時間は" + (end - start).TotalSeconds);

start = DateTime.Now;
for( int i = 0; i < 1000000; i++ )
{
trimString = System.Text.RegularExpressions.Regex.Replace( baseString, " *$","");
}
end = DateTime.Now;

Console.WriteLine( "処理時間は" + (end - start).TotalSeconds);

結果は
処理時間は0.453125
処理時間は0.25
処理時間は9.84375
なので、ほとんど誤差だけれど、ちゃんと半角スペースを指定していたほうが早い。
正規表現は問題外か。