C#里的字典怎么保存和载入?
我想做一个C#字典,可以选择键在一个richtextbox显示值,字典要保存在文件,不会写保存和读取,求代码。...
我想做一个C#字典,可以选择键在一个richtextbox显示值,字典要保存在文件,不会写保存和读取,求代码。
展开
展开全部
1,保存。
有多重方式进行保存, 数据库,txt,都可以。
数据库需要去看ADO.NET,不算很难,一般存储都要用到数据库。
txt相对简单,效率会低一些(大数据量),但是不用部署数据库环境。
public Dictionary<key,value> Read(string path) //读txt文件 返回字典
{
StreamReader sr = new StreamReader(path,Encoding.Default);
String line;
var dic = new Dictionary<key,value>();
while ((line = sr.ReadLine()) != null)
{
var li= line.ToString().Splite(","); //将一行用,分开成键值对
dic.Add(li.key,li.value);
}
return dic;
}
public void Write(string path,Dictionary<key,value> mydic) //将字典写入txt
{
FileStream fs = new FileStream(path, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//开始写入
foreach(var d in mydic)
{
sw.Write(d.key.+","+d.value); //键值对写入,用逗号隔开
}
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
添加新的键值对可以用txt文件的追加行来实现,也可以全读出来,添加一个,重新覆盖一遍,都可以。
更多追问追答
追问
好像不包含 splite,var li= line.ToString().Splite(","); //将一行用,分开成键值对,这个应该怎么准确表达?
追答
是Split
中文输入法。。。见谅。。
string.Split( char value ) 是个字符串拆分函数,需要提供一个分隔点,就是()里的char值。
返回的结果是string[]类型的数组,
也就是说 “123.321”.Split( ' . ') 得到的结果是{"123","321"}
你把这个string[]构造成键值对就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询