如何使用 string.format 参数名称数组作为参数?
How to use string.format with array of arguments names as argument?
我想根据另一个字符串的格式从变量创建字符串。
它只传递字符串名称,不传递引用。参考不工作。我能做什么?
var format = "city, post_code, street, building_number,name"
var city = model["City"];
var post_code = model["Post_Code"];
var street = model["Street"];
var building_number = model["Building_Number"];
var name = model["Name"];
var arguments = format.Split(",");
var s = String.Format("{0} {1} {2} {3} {4}", new object[] { arguments[0], arguments[1], arguments[2], arguments[3], arguments[4] });
您正在尝试使用字符串作为变量名。 C# 不是 PHP.
你真正想要的是字符串插值:
var s = $"{city}, {post_code}, {street}, {building_number}, {name}";
现在,如果您希望此格式字符串可变,请参阅:
- Using variables inside strings
- What's a good way of doing string templating in .NET?
您没有正确使用 String.Format
。像这样修改你的代码
var s = String.Format("{0} {1} {2} {3} {4}", arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
不确定此处的预期 result/functionality。
格式是静态信息还是可以变化?我将这个问题解释为后来的问题。一个(非常基本的)解决方案可能是:
public void foo(DataRow model, String format = "city,post_code,street,building_number,name")
{
var arguments = format.Split(',');
var val1 = model[arguments[0]];
var val2 = model[arguments[1]];
var val3 = model[arguments[2]];
var val4 = model[arguments[3]];
var val5 = model[arguments[4]];
var s = $"{val1} {val2} {val3} {val4} {val5}";
}
我想根据另一个字符串的格式从变量创建字符串。 它只传递字符串名称,不传递引用。参考不工作。我能做什么?
var format = "city, post_code, street, building_number,name"
var city = model["City"];
var post_code = model["Post_Code"];
var street = model["Street"];
var building_number = model["Building_Number"];
var name = model["Name"];
var arguments = format.Split(",");
var s = String.Format("{0} {1} {2} {3} {4}", new object[] { arguments[0], arguments[1], arguments[2], arguments[3], arguments[4] });
您正在尝试使用字符串作为变量名。 C# 不是 PHP.
你真正想要的是字符串插值:
var s = $"{city}, {post_code}, {street}, {building_number}, {name}";
现在,如果您希望此格式字符串可变,请参阅:
- Using variables inside strings
- What's a good way of doing string templating in .NET?
您没有正确使用 String.Format
。像这样修改你的代码
var s = String.Format("{0} {1} {2} {3} {4}", arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
不确定此处的预期 result/functionality。
格式是静态信息还是可以变化?我将这个问题解释为后来的问题。一个(非常基本的)解决方案可能是:
public void foo(DataRow model, String format = "city,post_code,street,building_number,name")
{
var arguments = format.Split(',');
var val1 = model[arguments[0]];
var val2 = model[arguments[1]];
var val3 = model[arguments[2]];
var val4 = model[arguments[3]];
var val5 = model[arguments[4]];
var s = $"{val1} {val2} {val3} {val4} {val5}";
}