24

私は長い紐を持っています。

string s1 = "'99024','99050','99070','99143','99173','99191','99201','99202','99203','99204','99211','99212','99213','99214','99215','99217','99218','99219','99221','99222','99231','99232','99238','99239','99356','99357','99371','99374','99381','99382','99383','99384','99385','99386','99391','99392'";

私が欲しい

string s2 = 
            "'99024',
             '99050',
             '99070',
             '99143',
             '99173',
             '99191',
             '99201',
             '99202',....";

言い換えると。多分それが好きです:

string s2 = "'99024',"+'\n'+"'99050',"+'\n'+"'99070',"+'\n'+"'99143',"+'\n'+.....;

簡潔なコードが必要です。多分LINQ。ありがとう。

4

7 に答える 7

44
string s2 = s1.Replace(",", "," + Environment.NewLine);

また、パフォーマンスの観点から、私が見た 3 つの現在のソリューションが 100,000 回以上の反復をどのように積み上げているかを以下に示します。

ReplaceWithConstant           - Ms: 328, Ticks: 810908
ReplaceWithEnvironmentNewLine - Ms: 310, Ticks: 766955 
SplitJoin                     - Ms: 483, Ticks: 1192545

ReplaceWithConstant :

string s2 = s1.Replace(",", ",\n");

ReplaceWithEnvironmentNewLine :

string s2 = s1.Replace(",", "," + Environment.NewLine);

分割結合:

string s2 = String.Join("," + Environment.NewLine, s1.Split(','));

ReplaceWithEnvironmentNewLineReplaceWithConstantは互いに誤差の範囲内であるため、機能的に違いはありません。

代わりにを使用する場合と同様に、読みやすさと一貫性のために、 を使用Environment.NewLineすることをお勧めします。"\n"String.Empty""

于 2012-04-10T20:40:24.523 に答える
27
string s2 = s1.Replace(",", ",\n");
于 2012-04-10T20:39:26.573 に答える
0

Dan Rigby が言ったように、Environment.NewLine を使用する必要がありますが、String.Empty には 1 つの問題があります。読み取りの前または後に読み取られても、常に空のままです。昨日、プロジェクトで問題が発生しました。私はそれを削除しましたが、それは想定どおりに機能しました。変数を宣言してから、必要なときに呼び出す方がよいでしょう。String.Empty は、変数を初期化する必要がない限り、常に空のままにします。その場合にのみ、String.Empty を使用する必要があります。私がそれを経験したので、私は皆のためにこの一口を捨てようと思った.

于 2013-05-01T17:58:43.670 に答える
0
string s2 = s1.Replace(",", ",\n") + ",....";
于 2012-04-10T20:42:25.330 に答える
0

別のオプション:

string s2 = String.Join("," + Environment.NewLine, s1.Split(','));
于 2012-04-10T20:46:58.003 に答える