2012-01-12 8 views
2

私は、このようなエスケープString.Formatのプレースホルダ

String.Format("ListId={1CC88B01-E60F-45D1-8B3C-28852574156D}&ID={0}&ContentTypeID=0x01003D458D19EF31D845B3A7727B0F2F8FC8", MyValue) 

WHERE MyValue would replace ID={0} 

としてそれを使用したいと思います次の文字列

"ListId={1CC88B01-E60F-45D1-8B3C-28852574156D}&ID={0}&ContentTypeID=0x01003D458D19EF31D845B3A7727B0F2F8FC8" 

は、しかし、これはSystem.FormatExceptionをスローしています。明らかに、これはstring.formatプレースホルダ値を使用する{1CC88B01-E60F-45D1-8B3C-28852574156D} guidが原因です。今では、単に文字列コールstring.format()を必要に応じて分割して、それを再び連結することができますが、何らかの理由でプレースホルダの値を "エスケープ"することによって回避することができます。

+0

[.Netのフォーマット文字列で角括弧を逃れる方法](http://stackoverflow.com/questions/91362/how-to-escape-brackets-in-a-format-string-in-ネット) – zzzzBov

答えて

8

は、あなただけのカッコを倍にする必要があります。

String.Format("ListId={{1CC8...156D}}&ID={0}&...", MyValue) 
+0

おっと。なぜ私はそれを試していないのですか?ありがとう! –

1

使用ダブル{{または}}文字をエスケープします。