2013-08-14 12 views
9

私は文字列の各単語の前に "test"を追加するために正規表現を使いたいとします。

string MyText="hello world" 
string Pattern = "\w+"; 

私はこれを行うことができます:

Regex.Replace(MyText, Pattern, "test$&") 

またはこの:

Regex.Replace(MyText, Pattern, m=>"test"+m.Value) 

を、私は同じ結果になるだろうので、ラムダ式で$ &と価値の違いは何ですか?結果の点で違いがない場合は、パフォーマンスの問題がありますか?

+4

+1;ここでラムダを使うことができるかどうかは分かりませんでした。 – Nolonar

答えて

1

ラムダは、通常のものと全く同じように動作する匿名の方法です。あなたの例で宣言されたものは string Convert(RegexMatch match) { return "test" + match.Value; }と等価です。 この構文を使用すると、最初の例で使用したRegex式を使用して、さらに豊富な可能性を得ることができます。

+1

質問は "ラムダ式"とは異なります... "test $&"とm => "test" + m.Valueの使用には違いがあると思います2つの間に機能的な違いがありますが、私は100%では分かりません。私はまた、1つのソリューションを他のソリューションよりも使用するというパフォーマンスの問題を知りたいと思います。 – Anthony