1. ホーム
  2. c#

[解決済み] C#の名前付き文字列の書式設定

2022-04-27 11:50:51

質問

C#で文字列を位置ではなく、名前でフォーマットする方法はありますか?

Pythonでは、次の例のようなことができます(shamelessly stolen from ここで ):

>>> print '%(language)s has %(#)03d quote types.' % \
      {'language': "Python", "#": 2}
Python has 002 quote types.

C#でこれを実現する方法はないのでしょうか? 例えば、こんな感じ。

String.Format("{some_variable}: {some_other_variable}", ...);

変数名でできるといいのですが、辞書でもかまいません。

どのように解決するのですか?

ビルトインで対応する方法はありません。

ここに一つの方法があります。

string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);

こちらもどうぞ

Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);

上記の2つを部分的に基にした第3の改良法 Phil Haack氏より