从List <T>格式化字符串

run*_*us2 0 c# string format

我有一个列表

public class PolynomialCoefficients<T> : IEnumerable<T>
{
    private List<T> coefficients;

    public string ToString(string format)
    {
        StringBuilder polynomialString = new StringBuilder();
        char separator = ':';

        foreach(T coefficient in coefficients)
        {
            polynomialString.Append(String.Format("0.0000", coefficient.ToString()));
            polynomialString.Append(separator);
        }

        polynomialString.Remove(polynomialString.Length - 1, 1); 
        return polynomialString.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说列表包含元素:1,2,3我想调用ToString("0.000")并得到输出:1.000:2.000:3.000但每次输出类似于0.000:0.000:0.000

Bra*_*NET 5

String.Format需要一种非常特殊的字符串.你给它打印了一个文字字符串:

String.Format("0.0000", coefficient.ToString());
Run Code Online (Sandbox Code Playgroud)

所以它只是打印出来.如果你给它一个占位符:

String.Format("{0}", coefficient.ToString("0.0000"));
Run Code Online (Sandbox Code Playgroud)

它将替换传递的参数.您还可以指定占位符的格式:

String.Format("{0:f4}", coefficient);
Run Code Online (Sandbox Code Playgroud)

"f4"会给你你的格式.可以在MSDN上找到标准格式字符串