String.Format 自定义参数占位符
String.Format custom parameter placeholders
我有一个字符串var str1 = "My name is {{0}}, I am {{1}} years old."
我想使用 String.Format(str1, 'Pavel', 29)
;
当然不行,因为String.Format()
希望参数占位符在单个大括号中
所以,我必须像这样修改我的字符串:
for (int i = 0; i < 10; i++)
{
str1 = str1.Replace("{{" + i + "}}", "{" + i + "}");
}
不知道有没有更好的方法?有没有一种方法可以定义参数占位符的格式?
Is there a way I can define the format of the argument placeholders?
没有
I wonder if there is a better way of doing it?
您唯一的选择是创建与 string.Format
兼容的格式字符串。这就是你现在所做的。如果可以,请修复这些格式字符串的来源。
如果那不可能,我会选择使用正则表达式来使其更健壮、性能更好。
您应该使用的表达式是{{(\d+)}}
,可以用{}
代替。查看实际效果 here。
我有一个字符串var str1 = "My name is {{0}}, I am {{1}} years old."
我想使用 String.Format(str1, 'Pavel', 29)
;
当然不行,因为String.Format()
希望参数占位符在单个大括号中
所以,我必须像这样修改我的字符串:
for (int i = 0; i < 10; i++)
{
str1 = str1.Replace("{{" + i + "}}", "{" + i + "}");
}
不知道有没有更好的方法?有没有一种方法可以定义参数占位符的格式?
Is there a way I can define the format of the argument placeholders?
没有
I wonder if there is a better way of doing it?
您唯一的选择是创建与 string.Format
兼容的格式字符串。这就是你现在所做的。如果可以,请修复这些格式字符串的来源。
如果那不可能,我会选择使用正则表达式来使其更健壮、性能更好。
您应该使用的表达式是{{(\d+)}}
,可以用{}
代替。查看实际效果 here。