我有一個外部資源,保存信息爲key-value pair
(說文件,通常是一個XML),我想加載這個信息到應用程序作爲Dictionary<Key,Value>
(泛型)。我正在尋找任何序列化 - 反序列化機制或任何其他更好的方法來做到這一點,而無需任何開銷。外鍵值對數據字典C#
樣的外部資源將是如下,
Id Value
in India
us United States
fr France
我有一個外部資源,保存信息爲key-value pair
(說文件,通常是一個XML),我想加載這個信息到應用程序作爲Dictionary<Key,Value>
(泛型)。我正在尋找任何序列化 - 反序列化機制或任何其他更好的方法來做到這一點,而無需任何開銷。外鍵值對數據字典C#
樣的外部資源將是如下,
Id Value
in India
us United States
fr France
(say file, typically an 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);
}
這一個似乎更好..讓我等待其他答案.. –
的string string
字典應該做的伎倆。
// 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
<Loc>
<Id>in</Id>
<Value>India</Value>
</Loc>
C#
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);
}
是什麼問題?它解析XML成對? –
我嘗試通過添加自定義結構,在外部流之間工作,發現它是一個開銷。因爲從外部閱讀,設置爲自定義類,然後製作詞典... –
@omerschleifer完全是 –