C# 字典C的外部键值对数据

C# 字典C的外部键值对数据,c#,generics,serialization,dictionary,C#,Generics,Serialization,Dictionary,我有一个外部资源,它将信息保存为键值对,比如文件,通常是xml,我希望将此信息作为字典泛型加载到应用程序中。我正在寻找任何序列化-反序列化机制或任何其他更好的方法来实现它,而不需要任何开销 外部资源的示例如下: Id值 在印度 美国 法国联邦共和国 一本关于字符串的词典应该可以做到这一点 // read from XML or some place var dictionary = new Dictionary<string, string>(); dictionary.

我有一个外部资源,它将信息保存为键值对,比如文件,通常是xml,我希望将此信息作为字典泛型加载到应用程序中。我正在寻找任何序列化-反序列化机制或任何其他更好的方法来实现它,而不需要任何开销

外部资源的示例如下:

Id值 在印度 美国 法国联邦共和国 一本关于字符串的词典应该可以做到这一点

// read from XML or some place    

var dictionary = new Dictionary<string, string>();

dictionary.Add("in", "India");
dictionary.Add("us", "United States");
dictionary.Add("fr", "France");
比如说文件,通常是xml

假设您将XML作为

 <root>
    <key>value</key>
 </root>
将其转换为字典的代码

XElement rootElement = XElement.Parse("<root><key>value</key></root>");
Dictionary<string, string> dictionary= new Dictionary<string, string>();
foreach(var el in rootElement.Elements())
{
   dictionary.Add(el.Name.LocalName, el.Value);
}
XML

C


有什么问题?是将xml解析成对吗?我尝试添加在外部流之间起中间作用的自定义结构,发现这是一种开销。因为从外部读取,设置为自定义类,然后制作字典…@omerschleifer请再次检查我的问题,我的键值对是外部的,可以更改每次运行。。。这种硬编码的解决方案不能与之配合使用
<Loc>
 <Id>in</Id>
 <Value>India</Value>
</Loc>
Dictionary<string,string> map = new Dictionary<string,string>();

XElement xe = XElement.Load("file.xml");

var q = from data in xe.Descendants("Loc")
        select data;

foreach (var data in q)
{
  map.Add(data.Element("Id").Value,data.Element("Value").Value);
}