我的字典存放在哪里

本文关键字:在哪里 字典 我的 | 更新日期: 2023-09-27 18:22:39

我有一个静态字典,需要在程序中使用。我把它加载到字典中,我想知道如何以及在哪里存储它,这样我以后就可以以最简单的方式访问它的值。

我想用键->值对来创建它的xml文件,但我不知道如何保存和格式化它,所以以后我可以用调用appSettings键和值的方式来调用它(使用LINQ)。

我只需要把它作为一种资源存储在某个地方,为什么不呢?每次我需要一个键的特定值时,只需要一行代码就可以获得它的值。

我的字典存放在哪里

您可以使用LINQ2XML创建两种方法来编写和读取Dictionary对象。

将字典(根据您的类型扩展/更改)存储到文件:

private void storeXml(string location, Dictionary<int, string> data)
{
    var xml = new XElement("storage", 
                    data.Select(kv => new XElement("entry", 
                                new XElement("key", kv.Key), 
                                new XElement("value", kv.Value))));
    xml.Save(location);
}

从文件中读取数据并填充字典对象:

private Dictionary<int, string> readXml(string location)
{
    var data = new Dictionary<int, string>();
    var xml = XDocument.Load(location);
    foreach(var element in xml.Descendants("entry").ToList())
    {
        var key = int.Parse(element.Element("key").Value);
        var value = element.Element("value").Value;
        data.Add(key, value);
    }
    return data;
}

代码可以这样使用:

var data = new Dictionary<int, string>();
data.Add(1, "one");
data.Add(2, "two");
data.Add(3, "three");
data.Add(4, "four");
var fileLocation = @"d:'temp'dictionary.xml";
storeXml(fileLocation, data);
var d = readXml(fileLocation);

XML文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<storage>
    <entry>
        <key>1</key>
        <value>one</value>
    </entry>
    <entry>
        <key>2</key>
        <value>two</value>
    </entry>
    <entry>
        <key>3</key>
        <value>three</value>
    </entry>
    <entry>
        <key>4</key>
        <value>four</value>
    </entry>
</storage>