c# - C# Dictionary<string, List<string>>.GetObjectData() (serialization) 是否一致?

标签 c# .net serialization

我知道字典不会按照添加的顺序存储它们的键值对,但是如果我将相同的键值对(可能以不同的顺序)添加到两个不同的字典并序列化结果,文件中的数据是否相同?

编辑:澄清一下,我专门询问 GetObjectData() 的输出,而不是任何特定的序列化程序。考虑以下代码:

Dictionary<string,List<string>> dict1 = new Dictionary<string,List<string>>();
Dictionary<string,List<string>> dict2 = new Dictionary<string,List<string>>();
string key11 = "key1";
string key12 = "key1";
string key21 = "key2";
string key22 = "key2";
List<string> values11 = new List(1);
List<string> values12 = new List(1);
List<string> values21 = new List(1);
List<string> values22 = new List(1);
values11.add("value1");
values12.add("value1");
values21.add("value2");
values22.add("value2");
dict1.add(key11, values11);
dict2.add(key22, values22);
dict1.add(key21, values21);
dict2.add(key12, values12);

对于 GetObjectData(),dict1 和 dict2 会返回同样的东西吗?如果不是,为什么不呢?

最佳答案

它是否最终会成为 future 版本和/或替代实现中可能无法保证的实现细节;因此,我建议至少编写一个测试来验证它并可以作为标准测试的一部分运行。但是,如果您正在实现一个完全依赖于它的解决方案,那么可能值得编写您自己的序列化程序...

关于c# - C# Dictionary<string, List<string>>.GetObjectData() (serialization) 是否一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756059/

相关文章:

python - 如何在不复制底层数据的情况下序列化多个 numpy View (即具有共享数据的数组)?

c# - 以编程方式获取 Windows 用户帐户的数量

c# - 检查 double.ToString()

c# - 如何在 .Net 中获得最大允许文件大小?

c# - 在文本框中插入整数值

c# - Binaryformatter 序列化中的十进制字节数组构造函数

c# - 具体实现接口(interface)

c# - Kinect SDK 1.7 |更改 KinectCursor 图像和大小

c# - 如何将共享的 C# NuGet 依赖项添加到 C++/Cli 项目?

java - 如何在java中将对象转换为可序列化