在 C# 中,是否可以将应该由 String 的格式方法格式化的对象作为数组传递?



如果我有一个字符串,比如说"[{0:000}{1:00000}]",那么可以在C#中进行这样的格式化:字符串。格式("[{0:000}{1:00000}]",2,3(;

让我们假设我有一个整数列表(或数组(:

List<int> intList = new List<int>();
intList.Add(2);
intList.Add(3);

有没有可能以某种方式将该列表传递给String的格式化方法,以便按照int索引对应于格式化字符串索引({0:…,{1:…,也就是说(的方式进行格式化?我对这一点的可行性有很大的怀疑,但我非常感谢任何有创造力的人来证明这一点。

字符串。Format接受单个对象或对象数组作为参数。您的参数必须与方法签名匹配。

var result = string.Format("[{0:000}{1:00000}]", intList.Cast<object>().ToArray());

将列表作为对象数组传递正是这样做的。

来自方法String.Format(String, Object[])文档:

此方法将:

用指定数组中相应对象的字符串表示形式替换指定字符串中的格式项。

类似:

var foo = new List<int>{1,2,3,4,5,6,7,8};
Console.WriteLine("{0}, {3}, {2}, {1}, {4}", foo.Cast<object>().ToArray());

https://dotnetfiddle.net/ZLiNji

标记将是阵列的标记,但要注意:

索引(从零开始(必须大于或等于零并且小于参数列表的大小

相关内容

  • 没有找到相关文章

最新更新