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

   2024-10-02 2060
核心提示:在 C# 中,可以使用以下方法来序列化和反序列化 LinkedListNode:using System;using System.IO;using System.Runtime.Serializa

在 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 中的元素是自定义类型,需要确保该类型是可序列化的。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号