C# LinkedListNode的序列化与反序列化

avatar
作者
猴君
阅读量:0

在 C# 中,可以使用以下方法来序列化和反序列化 LinkedListNode:

using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System.Collections.Generic;  class Program {     static void Main()     {         // 创建一个 LinkedList         LinkedList<int> linkedList = new LinkedList<int>();         linkedList.AddLast(1);         linkedList.AddLast(2);         linkedList.AddLast(3);          // 将 LinkedListNode 序列化为字节数组         byte[] serializedData = SerializeLinkedList(linkedList.First);          // 将字节数组反序列化为 LinkedListNode         LinkedListNode<int> deserializedNode = DeserializeLinkedList(serializedData);          Console.WriteLine("Deserialized LinkedListNode value: " + deserializedNode.Value);     }      static byte[] SerializeLinkedList(LinkedListNode<int> node)     {         BinaryFormatter formatter = new BinaryFormatter();         using (MemoryStream stream = new MemoryStream())         {             formatter.Serialize(stream, node);             return stream.ToArray();         }     }      static LinkedListNode<int> DeserializeLinkedList(byte[] data)     {         BinaryFormatter formatter = new BinaryFormatter();         using (MemoryStream stream = new MemoryStream(data))         {             return (LinkedListNode<int>)formatter.Deserialize(stream);         }     } } 

在上面的示例中,首先创建了一个包含整数的 LinkedList,然后使用 SerializeLinkedList 方法将 LinkedList 的第一个节点序列化为字节数组。接着使用 DeserializeLinkedList 方法将字节数组反序列化为 LinkedListNode,并打印出反序列化后的节点的值。

需要注意的是,这里使用的是 BinaryFormatter 来进行序列化和反序列化操作,因此需要引入 System.Runtime.Serialization.Formatters.Binary 命名空间。另外,如果 LinkedList 中的元素是自定义类型,需要确保该类型是可序列化的。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!