[解決済み] インデックスプレースホルダーの代わりに、名前付き入力パラメータを受け付ける「String.Format」はありますか?重複
2022-05-15 06:04:43
質問
これは私が知っていることです
str = String.Format("Her name is {0} and she's {1} years old", "Lisa", "10");
しかし、私は次のようなものが欲しいのです。
str = String("Her name is @name and she's @age years old");
str.addParameter(@name, "Lisa");
str.addParameter(@age, 10);
どのように解決するのですか?
C# 6では 文字列補間 :
string name = "Lisa";
int age = 20;
string str = $"Her name is {name} and she's {age} years old";
として Doug Clutter で言及した 彼のコメント にあるように、文字列補間は フォーマット文字列 . コロンの後に書式を指定することで、書式を変更することが可能です。次の例では、コンマ付きで小数点以下2桁の数字を出力します。
var str = $"Your account balance is {balance:N2}"
として ベース で述べたように 彼の答え にあるように、文字列補間はテンプレート文字列をサポートしていません。実際、それに対するサポートは組み込まれていません。幸いなことに、いくつかの素晴らしいライブラリに存在します。
SmartFormat.NET などは、名前付きプレースホルダーをサポートしています。
Smart.Format("{Name} from {Address.City}, {Address.State}", user)
// The user object should at least be like that
public class User
{
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public string City { get; set; }
public string State { get; set; }
}
で利用可能です。 NuGet .
関連
-
[解決済み] バイトを文字列に変換する
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] YAML の文字列を複数行に渡って分割するには?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】文字列の中にある文字列(実際はchar)の出現回数を数えるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] C#の名前付き文字列の書式設定