c# - 如何为字符串格式提供自定义字符串占位符

标签 c# .net string string-formatting

我有一个字符串

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.NETlittlebit's StringFormat

关于c# - 如何为字符串格式提供自定义字符串占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102300/

相关文章:

c# - 在单个 ftp 请求中创建一个包含子目录的目录?

C# - 匿名函数和事件处理程序

.net - sqlite-net 日期时间检索

.net - COM 和 .NET 有什么区别?

c# - COM Interop 未通过接口(interface)检测 .NET 函数

c - 关于C中的字符串输入

c# - System.Net.Sockets.SocketException 灾难

c# - 如何遍历 PDFSharp 中的 Pdf 对象树?

c++ - 遍历字符串时尝试访问子字符串的编译器错误

string - 在 MATLAB 中将元胞数组转换为字符串