2013-06-04 5 views
12

と同じパターンで一覧 のすべての要素を置き換えます C#私は、文字列の何千とC#のリストを持ってLINQ

"2324343" 
"6572332" 
"45122" ... 

私は、彼らが希望、彼らの周りの括弧でそれらのすべてを交換したいと思います

"(2324343)" 
"(6572332)" 
"(45122)" ... 

のように見える私は、forループを書いて、これを行う方法を知っているが、私は、好ましくは、LINQとラムダ式でそれを行う方法があるかどうかを知りたいです。私は他の提案にもオープンしています。

多くの感謝!

答えて

29
var resultList = list.Select(x => string.Format("({0})", x)).ToList(); 
+1

実際にそこに文字列の数千人で、あなたがしたいすべてが彼らの周りの場所の括弧のであれば、私は 'string.Format'は、ちょうど'使用使用することはありません「(」+ X +「)」 ' 。 'string.Format'は、さまざまな書式設定を処理する(そして拡張することもできます)ので、ビーストにすることができます。 – Alxandr

+0

@Alxandrベンチマークしましたか?私はちょうど行った: '10000000'の文字列' string.Format'は '5785'msをとり、' '(' + x + ')'は '4531'msを取った。 string.Formatは入力文字列ごとに1つしか作成しませんが、ソリューションでは各入力文字列に対して2つの文字列が作成されることを考慮すると、何のメリットもありません。注: '"( "+ vals [i] +") "'は '2088'msで実行されます。これはおそらく、charsのボクシングの問題のためです。ファクター** 3 **は私のためにもっとよく似ています –

+0

個人的にはありません。私はlogginのドキュメントを読んで、パフォーマンス上の理由からそれを使用することを強く勧めています。また、コンパイラがかなりの量のスマートなものであれば、両方の時間に1つの文字列しか作成されません(私は '000 'が最初に'(000) '(または' ' – Alxandr

関連する問題