我有一个字符串
string str ="Enter {0} patient name";
我正在使用 string.format 对其进行格式化。
String.Format(str, "Hello");
现在,如果我还希望从某些配置中检索患者,那么我需要将 str 更改为类似
“输入 {0} {1} 名称”
。因此它将用第二个值替换 {1}。问题是我想要一些其他格式而不是 {1},例如 {pat}
。但是当我尝试使用时,它会抛出错误。我想要不同格式的原因是我需要像这样更改很多文件(可能包含 {0}、{1} 等)。所以我需要一个可以在运行时替换的自定义占位符。
最佳答案
您可能想查看 FormatWith 2.0通过 James Newton-King .它允许您使用属性名称作为格式化标记,例如:
var user = new User()
{
Name = "Olle Wobbla",
Age = 25
};
Console.WriteLine("Your name is {Name} and your age is {Age}".FormatWith(user));
您也可以将它与匿名类型一起使用。
更新: 还有一个类似的 solution通过 Scott Hanselman但它是作为 Object
而不是 String
上的一组扩展方法实现的。
2012 年更新:您可以获得 Calrius Consulting 的 NETFx String.FormatWith Extension Method NuGet.org 上的 NuGet 包
2014 年更新:还有 StringFormat.NET和 littlebit's StringFormat
关于c# - 如何为字符串格式提供自定义字符串占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102300/