我必须将一个Arraylist复制到一个新的Arraylist。在旧的Arraylist中有多个元素在运行时会发生变化。其中一个元素是Arraylist中的模块设置参数。我想深度复制arraylist的值,以便我可以使用它进行撤消操作。我尝试使用Binaryformater和Datacontract。对于非可序列化对象,都无法做到。任何人都可以帮忙吗?
答案 0 :(得分:0)
如果没有更多信息,很难确切地说出错误,但ArrayList本身是可序列化的。但是,如果您使用自定义对象,则需要将其标记为可序列化以使序列化工作。请参阅:Serialize ArrayList of Objects
答案 1 :(得分:0)
使用内存流和二进制格式化程序 像
这样的东西`public T Clone<T> (T obj)
. {
. using(var ms = new MemoryStream())
. {
. var formatter = new BinaryFormatter();
formatter.Serialize(stream, obj);
stream.Position =0;
return (T)formatter.Deserialize(stream);
}
. }’
希望有所帮助