gpt4 book ai didi

c# - 如何读取 C# 字符串字典并将其写入文件?

转载 作者:行者123 更新时间:2023-11-30 13:37:01 29 4
gpt4 key购买 nike

我有一个字典对象,我想写入磁盘并能够从磁盘读取它。理想情况下,我会避免使用任何第 3 方库。有没有使用常规 C# 4 执行此操作的简单方法?

已接受答案。

总结:

选项 1 - 使用 JavaScriptSerializer

优点:不需要第 3 方库。此外,使用更现代的格式,即 JSON

缺点:难以阅读 -- 未格式化。此外,确实需要引用不太常用的 System.Web.Extension 程序集,即使应用程序与 Web 无关也是如此。

解决方案:

写:

File.WriteAllText("SomeFile.Txt", new JavaScriptSerializer().Serialize(dictionary));

阅读:

var dictionary = new JavaScriptSerializer()
.Deserialize<Dictionary<string, string>>(File.ReadAllText("SomeFile.txt"));

选项 2 - 使用 Linq to Xml

优点:不需要第 3 方库。通常不需要添加额外的引用。易于阅读。

缺点:XML 不如 JSON 等更现代的东西更可取。

写:

new XElement("root", d.Select(kv => new XElement(kv.Key, kv.Value)))
.Save(filename, SaveOptions.OmitDuplicateNamespaces);

阅读:

var dictionary = XElement.Parse(File.ReadAllText(filename))
.Elements()
.ToDictionary(k => k.Name.ToString(), v => v.Value.ToString());

选项 3 - 使用 JSON.NET

优点:人类可读。现代格式。

缺点:需要第 3 方库。

解决方案:

写:

File.WriteAllText("SomeFile.Txt", JsonConvert.SerializeObject(dictionary));

阅读:

var dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>
(File.ReadAllText("SomeFile.txt"));

最佳答案

没有像 JSON.Net 这样的第三方,使用 JavaScriptSerializer :

File.WriteAllText("SomeFile.Txt", new JavaScriptSerializer().Serialize(dictionary));

从文件中取回字典:

var dictionary = new JavaScriptSerializer()
.Deserialize<Dictionary<string, string>>(File.ReadAllText("SomeFile.txt"));

唯一要记住的是在项目引用下添加对 System.Web.Extensions 的引用,然后在 using System. Web.Script.Serialization;


或用JSON.Net您可以将字典序列化为 JSON,然后将其写入文件,然后反序列化,例如:

Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("1", "Some value 1");
dictionary.Add("2", "Something");

在文件中存储字典:

string json = JsonConvert.SerializeObject(dictionary);
File.WriteAllText("SomeFile.Txt", json);

从文件中获取字典:

Dictionary<string, string> previousDictionary =
JsonConvert.DeserializeObject<Dictionary<string, string>>
(File.ReadAllText("SomeFile.txt"));

有关两个选项之间的比较,请参阅:JSON.NET JsonConvert vs .NET JavaScriptSerializer

关于c# - 如何读取 C# 字符串字典并将其写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27025435/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com