这是我的KeyValue集合
KeyValuePairCollection<int,string> KV=new KeyValuePairCollection<int,string>();
KV.Key = 1;
KV.Value = "Chapter1";
KV.Key = 2;
KV.Value = "Chapter2";
KV.Key = 3;
KV.Value="Chapter3";
<小时/> 我使用下面的代码
序列化了该集合
StreamWriter txtWrt=null;
string m_ArraylstfileName = @"d:\XML\GenericsKV.xml";
XmlSerializer xmlPerSerlzr =
new XmlSerializer(typeof(KeyValuePairCollection<int,string>));
txtWrt = new StreamWriter(m_ArraylstfileName);
xmlPerSerlzr.Serialize(txtWrt, KV);
我的xml文件仅存储最终条目(即Key = 3,Value =“chapter3”) 的
<小时/> 建议请。
答案 0 :(得分:1)
每次设置Key和Value属性时,都会覆盖以前的值而不添加新值,这就是为什么只有最后一个序列化的原因。
所以这与序列化无关,如果你想保留多个使用Dictionary
Dictionary<int,string> KV = new Dictionary<int,string>();
KV.Add(1,"a");
KV.Add(2,"b");
foreach (KeyValuePair<int, string> kvp in KV)
{
}
答案 1 :(得分:0)
是...因为您在代码中始终覆盖键和值。 我假设你想使用字典?
Dictionary<int,string> dic = new Dictionary<int, string>();
dic.Add(1,"Chap 1");
dic.Add(2, "Chap 2");
dic.Add(3, "Chap 3");