如何在C#中将数字数组格式化为字符串?

问题描述 投票:0回答:1

方法

String.Format
具有 以下重载

public static string Format (string format, params object?[] args);

我认为这是为了将许多相同类型的

args
格式化为一个字符串,其中args的每个
都有一个格式,类似于python 3中的
str.format(*args)

但是,当我打电话时:

var a = String.Format("{0} {1:0.00000000e+000} {2:0.00000000e+000}", new Double[] {1,2,3} );
我收到错误:

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

当我期望

a

 中的输出为

"1 2.00000000e+000 3.00000000e+000"
类似于Python 3中的

a="{0:d} {1:1.8e} {2:1.8e}".format(*[1,2,3])

打电话

var a = String.Format("{0}", new Double[] {1,2,3} );
修复了错误,但返回 

a

错误的结果:

"System.Double[]"
获得我期望的 python 结果的正确 C# 方法是什么(第一列的格式不同)?

-

PS:

这个相关问题给了我一个见解,但我确信我缺少一个更简单的方法:

String.Concat((new Double[] { 1,2,3 }).Select(k => string.Format("{0}", k)))
这不可能是最好的(或

正确)方式。

c# string formatting type-conversion format
1个回答
0
投票
使用

string.Join()

 可以做到这一点。

double[] d = new double[] { 1.0, 2.0, 3.0 }; string s = string.Join(" ", d);
这会将值连接成一个字符串,并且可以在 

string.Join()

 的第一个参数中添加任何分隔符。

© www.soinside.com 2019 - 2024. All rights reserved.