感谢您的答复,我们设法通过创建自定义的链表序列化代理来解决此问题,该代理迭代链表,并使用基于列表位置的唯一引用将每个节点保存到文件中。从文件加载数据时,我们可以使用相同的唯一引用以正确的顺序检索正确的节点。下面是一些代码片段,展示了我们如何做到这一点(我们意识到这可能不是最有效的方法,但是它可以满足我们的需求):
将数据保存到文件:
`int num = 0;
info.AddValue("count",cardsList.Count);
foreach (KeyValuePair<Cards,bool> el in cardsList){
info.AddValue(num + "id",el.Key.ID);
info.AddValue(num + "faceUp",el.Value);
num++;
}`
从文件加载数据:
`int count = (int)info.GetValue("count",typeof(int));
string id = "";
bool faceUp;
for (int i = 0; i < count; i++)
{
id = (string)info.GetValue(i + "id",typeof(string));
faceUp = (bool)info.GetValue(i + "faceUp",typeof(bool));
linkedList.AddLast(new KeyValuePair<Cards,bool>(gameController.FindCard(id),faceUp));
}`
本文链接:https://www.f2er.com/2656767.html