パフォーマンスの場合には、次のコードのほうが優れていますか?最初の例でパフォーマンスの文字列対文字列
private void ReplaceChar(ref string replaceMe) {
if (replaceMe.Contains('a')) {
replaceMe=replaceMe.Replace('a', 'b');
}
}
private void ReplaceString(ref string replaceMe) {
if (replaceMe.Contains("a")) {
replaceMe=replaceMe.Replace("a", "b");
}
}
含有する第二使用して文字列の中にいる間、私は(、CHARを使用)及び(交換)
最初のものがあるため、より少ないメモリを消費する「文字」の優れた性能を持っているだろうコンパイラはこの操作でキャストする必要がないので、2番目の方がうまく動作しますか?
(あるいは、これはすべてのナンセンスである、CLRは、両方のバリエーションで同じコードを生成する原因?)
私は文字列のレクリエーションが実際の交換より悪いと思います。 –
文字列を割り当てる必要がなく、文字のグループ(文字列)に対して単一の文字を検索する方が簡単で、 'Replace'実装は返されるサイズを知っています文字列をあらかじめ用意しておく必要があります。追加の割り当てを行う必要はありません。しかし、知る唯一の方法は測定することです。 –
Contains()を含むifは不要ですか? Replace()は既にそれが含まれているかどうかをチェックします。 – Johan