C#将多维数组导出/写入文件(csv或其他)

您好设计一个程序,我只是想建议将multiDim数组写入文件。 我正在使用XNA,并且有一个带有Vector3(x,y,z)的多维数组。

有数十万甚至数百万的值,我希望能够将它们保存在文件中(保存游戏级别)。 我对一个想法没有偏见,我只需要存储数据……就是这样! 所有其他游戏数据,如玩家统计数据等,我正在使用XMLSerializer及其工作奇迹。

现在我正在使用xml序列化器,并且已经了解到你无法导出MultiDimarrays……这太令人沮丧(但我确信有一个很好的理由 – 希望如此)。 我玩Jagged没有运气。

使用System.IO.File.WriteAllText然后快速重新使用,仅用于字符串… daahhh

基本上我认为我需要沿着BinaryWrite方法,重新编写我自己的序列化程序,甚至尝试运行一个SQL服务器来托管大量的数据……愚蠢的想法? 请告诉我,你能否指出我的写作方向。 由于我主要有一个web(php)背景,运行同步数据/级别数据的服务器的想法对我很有吸引力……但可能不适用于此。

谢谢你的一切,

如果arrays中的对象是可序列化的(和IIRC Vector3s),您可以使用内置的.NET序列化器对序列进行序列化。

void SerializeVector3Array(string filename, Vector3[,] array) { BinaryFormatter bf = new BinaryFormatter(); Stream s = File.Open(filename, FileMode.Create); bf.Serialize(s, array); s.Close(); } Vector3[,] DeserializeVector3Array(string filename) { Stream s = File.Open(filename, FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); Vector3[,] array = (Vector3[,])bf.Deserialize(s); s.Close(); return array; } 

这应该是你所追求的一个粗略模板。

为什么不试试Json Serialization? Json的噪音比XML少,在写入文件时占用的空间更少,特别是如果你这样做而没有缩进等等。就我的经验而言,它没有数组,字典,日期和其他对象的麻烦。

我建议使用JSON.NET ,如果没有,请查看此主题

如果Json.net发现很难序列化具有许多私有和静态变量的库类,那么编写POCO类并将库类基本属性映射到POCO并序列化和来回映射POCO是微不足道的。