首页主机资讯C#字典的序列化与反序列化

C#字典的序列化与反序列化

时间2024-09-11 16:32:04发布访客分类主机资讯浏览723
导读:在C#中,可以使用System.Runtime.Serialization命名空间中的DataContractSerializer类来实现字典的序列化和反序列化 首先,需要添加System.Runtime.Serialization的引用。...

在C#中,可以使用System.Runtime.Serialization命名空间中的DataContractSerializer类来实现字典的序列化和反序列化

首先,需要添加System.Runtime.Serialization的引用。

using System;
    
using System.Collections.Generic;
    
using System.IO;
    
using System.Runtime.Serialization;


class Program
{

    static void Main(string[] args)
    {
    
        // 创建一个字典对象
        Dictionary<
    string, int>
     dictionary = new Dictionary<
    string, int>

        {

            {
"apple", 1}
,
            {
"banana", 2}
,
            {
"orange", 3}

        }
    ;
    

        // 序列化字典
        string serializedDictionary = SerializeDictionary(dictionary);
    
        Console.WriteLine("Serialized dictionary: " + serializedDictionary);
    

        // 反序列化字典
        Dictionary<
    string, int>
     deserializedDictionary = DeserializeDictionary<
    string, int>
    (serializedDictionary);
    
        Console.WriteLine("Deserialized dictionary:");
    
        foreach (KeyValuePair<
    string, int>
 entry in deserializedDictionary)
        {

            Console.WriteLine($"Key: {
entry.Key}
, Value: {
entry.Value}
    ");

        }

    }
    

    public static string SerializeDictionary<
    TKey, TValue>
    (Dictionary<
    TKey, TValue>
 dictionary)
    {

        using (MemoryStream memoryStream = new MemoryStream())
        {
    
            DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary<
    TKey, TValue>
    ));
    
            serializer.WriteObject(memoryStream, dictionary);
    
            memoryStream.Position = 0;

            using (StreamReader reader = new StreamReader(memoryStream))
            {
    
                return reader.ReadToEnd();

            }

        }

    }
    

    public static Dictionary<
    TKey, TValue>
     DeserializeDictionary<
    TKey, TValue>
(string serializedDictionary)
    {

        using (MemoryStream memoryStream = new MemoryStream())
        {

            using (StreamWriter writer = new StreamWriter(memoryStream))
            {
    
                writer.Write(serializedDictionary);
    
                writer.Flush();
    
                memoryStream.Position = 0;
    
                DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary<
    TKey, TValue>
    ));
    
                return (Dictionary<
    TKey, TValue>
    )serializer.ReadObject(memoryStream);

            }

        }

    }

}
    

这个示例中,我们创建了一个包含水果名称和数量的字典。然后,我们使用SerializeDictionary方法将字典序列化为字符串,并使用DeserializeDictionary方法将字符串反序列化为字典。最后,我们打印出序列化和反序列化后的字典。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C#字典的序列化与反序列化
本文地址: https://pptw.com/jishu/698563.html
C#字典在实际项目中的应用案例 处理Oracle数据库报错的步骤是什么

游客 回复需填写必要信息