C#字典

复制代码
 class DicOperate//操作Dictionary的类;
    {
        public void DictionaryWriteJson(string path, Dictionary<string, string> mydic) //将字典写入txt
        {
            FileStream fs = new FileStream(path, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);

            string strWrite = JsonConvert.SerializeObject(mydic);
            //开始写入

            sw.Write(strWrite); //写入Jason文件

            //清空缓冲区

            sw.Flush();
            //关闭流
            sw.Close();
            fs.Close();
        }
        /// <summary>
        /// 把Jason文件读出为字典对象
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public Dictionary<string, string> JasonFileToDictionary(string path) //读txt文件 返回字典
        {
            String line;
            Dictionary<string, string> dic = new Dictionary<string, string>();//定义一个字典;
            UTF8Encoding utf8 = new UTF8Encoding();//解决读取出来中文乱码问题;
            if (File.Exists(path))
            {
                StreamReader sr = new StreamReader(path, utf8);

                line = sr.ReadToEnd().ToString();
                sr.Close();
                dic = JsonConvert.DeserializeObject<Dictionary<string, string>>(line);
            }
                return dic;
        }
        /// <summary>
        /// 把Jason文件读出为字符串
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public string JasonFileTomString(string path) //读txt文件 返回字符串
        {
            String str_Data;
            try
            {
                UTF8Encoding utf8 = new UTF8Encoding();//解决读取出来中文乱码问题;
                StreamReader sr = new StreamReader(path, utf8);
                
                str_Data = sr.ReadToEnd().ToString();
                sr.Close();
            }
            catch
            {
                str_Data = null;
            }
            return str_Data;
        }
    }
复制代码

上面定义了一个字典的操作类,包含3个方法:

下面看看怎么使用这个字典类;

【1】在要使用的Class下定义字段成员;

DicOperate dicOp1 = new DicOperate();

【2】按钮按下的事件中使用字典的读取方法;

复制代码
 private void About_Load(object sender, EventArgs e)
        {
            mydic = dicOp1.JasonFileToDictionary(aboutDelegate.Invoke());//这里通过调用个委托来获取文件路径;
            string strOut;
            if (mydic.TryGetValue("软件名称", out strOut))
            { lb_SoftwName.Text = strOut; }

            if (mydic.TryGetValue("软件版本", out strOut))
            { lb_Version.Text = strOut; }

            if (mydic.TryGetValue("软件描述", out strOut))
            { textBox1.Text = strOut; }
        }
复制代码

【3】软件关闭窗口事件中,执行存储字典为Jason格式文本文件;

复制代码
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            string[] strArray = lb_ResultVal.Text.Split('=');
            string stringSave = string.Concat(strArray);

            string val = null;
            if (mydic.TryGetValue("lastTestResult", out val))
            {
                //如果指定的字典的键存在
                mydic["lastTestResult"] = stringSave;
            }
            else
            {
                //不存在,则添加
                mydic.Add("lastTestResult", stringSave);
            }
            //mydic.Add("软件名称", "模拟软件");
            //mydic.Add("软件版本", "v1.0");
            //mydic.Add("软件描述", "字典的经验");
            dicOprator.DictionaryWriteJson(DicPathCreat(), mydic);
        }
复制代码

简单用法,学而时习之!

End~

posted @   Stephen_Young  阅读(540)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示