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~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App