在我的類中的一個,我有讀取和寫入型小數的陣列的例行程序(使用BinaryReader
/BinaryWriter
的ReadDecimal()
和Write()
方法,即:如何在文件中讀寫C#BigIntegers?
BinaryReader inputReader = new BinaryReader(File.OpenRead(BaseFilePath));
for (int x = 0; x < 6; x++) {
for (int y = 0; y < m_Codes[x].GetLength(0); y++) {
for (int z = 0; z < m_Codes[x].GetLength(1); z++) {
m_Codes[x][y, z] = inputReader.ReadDecimal();
}
}
}
和
for (int x = 0; x < 6; x++) {
for (int y = 0; y < m_Codes[x].GetLength(0); y++) {
for (int z = 0; z < m_Codes[x].GetLength(1); z++) {
outputWriter.Write(m_Codes[x][y, z]);
}
}
}
..正如你所看到的,在設計時只有第一維是已知的,其他維在運行時有所不同。 ith ReadBigInteger()
和類似的寫作方法,但似乎沒有支持的流類;我猜這是因爲BigInteger可以有任意長度。
關於我能想到的最好的事情是通過將BigInteger轉換爲byte[]
數組,然後編寫該數組的長度,然後將每個字節寫入數組本身(然後做相反的操作讀它)
兩個問題:
1)這是一個更好的辦法?
2)我的主要動機是希望提高性能; boe BigInteger甚至比Decimal表現得更好?
你需要更好的表現嗎? – Oded
Decimal有什麼不好? – Tigran
@Tigran:Decimal的性能比int,long,float或double等原始類型的性能差得多。我不知道它們與BigInteger相比 – Falanwe