读/写三个不同对象列表的最佳方式

本文关键字:对象 列表 方式 最佳 三个 | 更新日期: 2023-09-27 18:18:42

我正在重写一个程序,其中有一个带索引的文件路径表,一个带索引的标签表,以及一个连接这两个索引的表。在此之前,我在一个数据集中使用三个数据表,读取和写入这三个数据表到磁盘非常容易。

这次我使用对象列表,文件对象,标签对象和索引对象。我真的更喜欢这样马上就可以建立我自己的函数来返回文件和相关的标记。

但是现在我自己将这三个"表"保存到磁盘上,然后再次读取它们。我发现了一些关于将对象列表写入二进制或XML的东西,但我真的希望所有这些都写入一个文件。最好的方法是什么?

读/写三个不同对象列表的最佳方式

但是现在我要自己把这三个"表"保存到磁盘和然后再读一遍。我找到了一些关于写对象列表的东西二进制或XML,但我真的希望所有的写入到一个文件。最好的方法是什么?

你可以创建一些DTO类来包装你所有的列表,例如:

public class ListsWrapper
{
  IList<string> FirstList{get;set;}
  IList<string> SecondList{get;set;}
  IList<string> ThirdList{get;set;}
}

实例化:

var wrapper = new ListsWrapper();
wrapper.FirstList = new List<string>...;
wrapper.SecondList = new List<string>...;
wrapper.ThirdList = new List<string>...;

然后,简单地将其序列化到磁盘上的单个文件:

Stream stream = File.Open(@"c:'tables.bin", FileMode.Create);
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, wrapper);
stream.Close();

为什么'写对象列表到XML'不是一个文件?创建一个包含这三个列表的包装器类,然后序列化这个包装器类。