【发布时间】:2016-10-31 18:48:12
【问题描述】:
我必须永久(或至少在下次执行之前)保存如下表格:
| ID | Color |
|------|---------|
| 0001 | Red |
| 0002 | Blue |
| 0003 | Green |
我想在外部将它保存在 XML 文件中,但我不知道我应该在内部使用哪种数据结构来访问这些数据,因为我想要某种迭代元素,但可以快速且易于访问并保存到外部 XML 文件,如果我想添加新关系,ID 必须是 0004。
我的意思是,我应该使用 Hashtable、DataTable、Array...吗?我应该改变导出这种关系的方式还是最好(简单快捷)的方式是将它们导出到 XML 文件中?
【问题讨论】:
-
请注意,您用于存储元素集合的数据类型与您的运行时要求相关(至少性能、内存使用和使用模式 - 插入/删除/搜索速度)。当您使数据持久化时,您不必保持相同的结构(例如,哈希表可能只是存储大量节点集)。存储要求是另一回事,有不同的选择:您是否必须手动编辑该文件?将其用作交换格式?一定特别小吧?你必须处理版本控制吗?
-
列表怎么样? id 可能只是列表索引。您实际需要对这些数据做什么、ID 的含义、您如何访问它等信息太少了。但它很可能是基于意见的。
-
ID 的事情可能有点棘手,因为您不能简单地使用集合中的项目数来知道下一个 ID(除非您禁止删除)。如何获取下一个 ID 可以像查询当前使用的 ID 一样简单(如果并发和速度/集合大小不是问题),否则您需要存储 next ID (或最新的 ID)。 ..) 某处(最终保持线程安全)
-
@AdrianoRepetti 数据将根据执行次数以对数方式增长以稳定(我计算在 100 以下)。我只需要和 ID 和一个字符串,所以文件中不需要大尺寸来保存它。我只想要一种快速简便的方法来修改和导入和导出数据。谢谢
标签: c# arrays xml data-structures hashtable