2017-12-14 11 views
-1

私は文字列比較を使用しているユニットテストを書いて、動作が成功したことをアサートします。私が作業している文字列は、エスケープが必要な多くの文字でエンコードされています。各文字列を通ってエスケープ文字を手動で追加するのは、時間がかかる操作です。これらのタイプの文字列を扱うより便利な方法はありますか?私はEscapeAll()のようなC#の機能を想像していますが、見つけられませんでした。エスケープが多い文字列を扱うには?

ここ脱出の膨大な量を必要とする文字列の例です。

<td class="name"><span id="153407 - 951"></span><a href="/statfeed/statfeed.php ? page = mlb/mlbteam & amp; teamid = SAN + FRANCISCO & amp; season = ">951 SAN FRANCISCO GIANTS</a></td><td id="ajaxUpdating - 153407 - 951 - Pitcher" class="pitcher ">(r) cueto, j</td><td class="line">8o20</td><td class="line"><a onclick="openLineMovement('20170630', '335310265', 'MLB'); " href="javascript:; ">8.5o15/8.5/8.5u20</a></td><td id="ajaxUpdating - 153407 - 951 - Current" class="currentline ">8o20</td><td id="ajaxUpdating - 153407 - 951 - Line" class="line ">+1.5(-194)</td><td id="ajaxUpdating - 153407 - 951" class="score finalscore"><span id="ajaxUpdating - 153407 - 951 - score" class="score first">13</span><span id="ajaxUpdating - 153407 - 951 - progress" class="score progress">Over 8</span></td>"; 

私は多分、私は、文字列をファイルに保存し、文字列変数に、ファイルを読み込むことができると思った、その私がアサートするために使用することができます。しかし、一方では、ファイル内の文字列コンテンツを隠すことはしません。テストフィクスチャを含む* .csファイル内の文字列の内容を直接読むことができる方がはるかに優れています。私はあまりにも多くを求めているかもしれませんか?

+0

あなたが投稿したものにエスケープ文字が表示されない '/'はエスケープ文字ではありません。しかし、単一の '\"は – MethodMan

答えて

1

Visual Studioでは、プロジェクトプロパティページの[リソース]タブに移動し、文字列リソースを追加できます。このページでは、文字列に名前、値、およびコメントを付けることができます。そのまま値の列に貼り付けてください。あなたのコードでは、それをResources.MyStringNameと呼ぶことができます。ボーナスとして、コードの上にカーソルを置くと、文字列の値がポップアップします(長い文字列はポップアップで切り捨てられます)。

0

使用生の文字列:

@"string with 
embedded new line"; 
1

各文字列を通過し、 を手動でエスケープ文字を追加するために時間のかかる作業です。

あなたは、二重二重引用符(""

@"This is a ""verbose"" string" 

冗長な文字列を使用することができ、冗長列に二重引用符(")をエスケープする方法です。 IDEの「置き換え」ツールを使用して、元の文字列の二重引用符で置き換えることができます。

0

冗長文字列の場合でも、引用符を二重にする必要があります。

.Replace("\\", "\\\\").Replace("\"", "\\\""); 

行います最も簡単な方法は、あなたが内の文字列を貼り付けた後、エスケープ形式でそれを吐き出すことができ、直接、標準入力またはファイルからいずれかの入力を受け取り、別のコンソールアプリケーションを作成することです

関連する問題