所以想象一下,我将以下变量设置为string.format:
string foo = string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8}");
Format方法将拥有比这更多的占位符(准确地说是64),并且根据某些条件,它们可能会发生变化。所以我想知道是否有办法遍历我拥有的变量列表,然后相应地将这些变量插入格式方法。我不知道如何开始这个,如果它甚至可能,但我当然不必手动将64个变量插入格式方法?
答案 0 :(得分:2)
String.Format
超载接受params object[]
参数:
public static string Format (string format, params object[] args);
这意味着您可以传递任何数量的任何类型的对象。但是,您有责任确保传递的参数数量与字符串中的占位符数量相匹配。例如:
DateTime date = DateTime.Today;
int number = 1234;
string format1 = "{0} == {1}";
string formatted = Format(format1, date, number);
// OR
object[] values = new object[] { date, number };
string formatted = Format(format1, values);
private static string Format(string text, params object[] values)
{
return string.Format(format1, values);
}
答案 1 :(得分:1)
获取列表,按照您想要的顺序对其进行排序 - 然后
var l = new List<string>();
// add to l, in the order you want then -
// when adding convert to the string equivalent if it's not a string already.
var s = string.Join("|",l);
return s;
答案 2 :(得分:-1)
params
关键字创建具有未指定数量的参数的函数。像这样的东西:
void myFunction(params object[] parameters)
{
foreach (var x in parameters) ...
}