目前我正在使用列表製作一種歷史日誌。我通過簡單地使用XML序列化程序序列化來保存此列表,但是無論何時序列化列表然後反序列化它,順序都與我第一次創建列表時的順序不同。C#XML序列化保留列表<T>訂單
例如,當我首先創建列表時,它可以是在該順序
- 甲
- 乙
- Ç
然而,當我序列化/反序列化可能會變得像
- B
- ç
- 一個
有沒有一種方法或迫使串行序列化時保留列表的順序? (我發現它實際上將其保存在錯誤的順序開始說起)
目前代碼:
public static List<StoredData> clipboardData = new List<StoredData>();
private void SaveClipboard()
{
XmlSerializer serializer = new XmlSerializer(typeof(List<StoredData>));
using (StreamWriter stream = new StreamWriter(historyFile))
{
serializer.Serialize(stream, clipboardData);
}
Console.WriteLine("Saved");
}
StoredData類
[Serializable]
public class StoredData
{
public String storedClip;
public DateTime storedTime;
}
您正在使用哪個序列化程序? – Baldrick
@Baldrick XML串行器 –
我幾乎肯定XmlSerializer保留了列表的順序。你可以發佈代碼和聲明的行爲是這樣嗎? – Baldrick