首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以编程方式将变量插入string.format ( C# )

以编程方式将变量插入string.format ( C# )
EN

Stack Overflow用户
提问于 2018-05-28 06:18:04
回答 3查看 727关注 0票数 0

想象一下,我将以下变量设置为string.format:

代码语言:javascript
复制
string foo = string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8}");

Format方法将有比这个多得多的占位符(准确地说是64个),并且根据某些条件,它们可能会改变。所以我想知道是否有一种方法可以遍历我拥有的变量列表,然后将这些变量相应地插入到format方法中。我甚至不知道如何开始,甚至不知道这是否可能,但我肯定不需要手动将64个变量插入到format方法中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-28 07:03:24

有一个接受params object[]参数的String.Format重载:

代码语言:javascript
复制
public static string Format (string format, params object[] args);

这意味着您可以根据需要传递任意数量的任意类型的对象。但是,您有责任确保传递的参数数量与字符串中的占位符数量相匹配。例如:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-05-28 09:05:24

获取一个列表,按你想要的顺序进行排序-然后

代码语言:javascript
复制
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;
票数 1
EN

Stack Overflow用户

发布于 2018-05-28 06:24:40

是的,有可能。可以使用params关键字创建具有未指定参数数量的函数。如下所示:

代码语言:javascript
复制
void myFunction(params object[] parameters)
{
    foreach (var x in parameters) ...

}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50557018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档