想象一下,我将以下变量设置为string.format:
string foo = string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8}");
Format方法将有比这个多得多的占位符(准确地说是64个),并且根据某些条件,它们可能会改变。所以我想知道是否有一种方法可以遍历我拥有的变量列表,然后将这些变量相应地插入到format方法中。我甚至不知道如何开始,甚至不知道这是否可能,但我肯定不需要手动将64个变量插入到format方法中?
发布于 2018-05-28 07:03:24
有一个接受params object[]
参数的String.Format
重载:
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);
}
发布于 2018-05-28 09:05:24
获取一个列表,按你想要的顺序进行排序-然后
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;
发布于 2018-05-28 06:24:40
是的,有可能。可以使用params
关键字创建具有未指定参数数量的函数。如下所示:
void myFunction(params object[] parameters)
{
foreach (var x in parameters) ...
}
https://stackoverflow.com/questions/50557018
复制相似问题