【发布时间】:2018-02-10 21:48:00
【问题描述】:
我有一个 Matrix 类,它提供了一个用于序列化代码的方法 ToString()。
public override string ToString()
// Function returns matrix as a string
// e.g. "Rows=3,Columns=3,Data= 1.00 0.50 0.75 | 0.50 1.00 0.25 | 0.75 0.25 1.00 |"
{
string s = "Rows=" + rows.ToString() + ",Columns=" + cols.ToString() + ",Data= ";
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++) s += String.Format("{0:G17}", mat[i, j]) + " ";
s += "| ";
}
return s;
}
我的用例是一个包含 10,000 多行和 2 列的矩阵。执行大约需要 10 秒,这太慢了。有没有更有效的方法来做到这一点?注意我需要完整的双精度序列化。
感觉代码效率低下,因为我反序列化时的反向操作需要不到一秒钟(这在循环中使用Convert.ToDouble(string))。
任何想法为什么这是低效的?
【问题讨论】:
-
你可以使用
StringBuilder。
标签: c# serialization tostring