标签: deep-copy

即使具有不可序列化的属性,如何克隆 Windows 窗体控件?

如何克隆或序列化 Windows 窗体控件?
当我尝试使用此代码“CloneControl(Control ct1)”克隆 Windows 窗体控件时,它允许我复制具有某些可序列化属性的控件,而不是所有属性。

public Form1()
{
    InitializeComponent();
        Columns = new DataGridViewTextBoxColumn[2];
        for (int i = 0; i < 2; i++)
        {
            Columns[i] = new System.Windows.Forms.DataGridViewTextBoxColumn();
            // 
            // Columns[i]
            // 
            Columns[i].HeaderText = "j" + (i + 1);
            Columns[i].Name = "Column" + (i + 1);
            Columns[i].Width = 50;
        }
        dataGridView1 = new System.Windows.Forms.DataGridView();
        dataGridView1.Name = "dataGridView1";
        dataGridView1.Location = new System.Drawing.Point(100, 100);
        dataGridView1.RowHeadersWidth = 50;
        dataGridView1.RowTemplate.Height = 25;
        dataGridView1.Size = new System.Drawing.Size(55 + 50 * 2, 25 + dataGridView1.RowTemplate.Height …
Run Code Online (Sandbox Code Playgroud)

c# serialization clone deep-copy winforms

1
推荐指数
1
解决办法
1万
查看次数

如何使用 Modelmapper 从另一个对象更新对象字段

我打算编写一个方法,用于更新具有MyObject另一个MyObject对象的非空字段的对象。

private void updateMyObject(MyObject sourceObject, MyObject destinationObject) {
    ModelMapper mapper = new ModelMapper();
    mapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
    mapper.map(sourceObject, destinationObject);
}

public class MyObject {
    long id;

    long durationInMilliSecounds;

    //...getters and setters 
}
Run Code Online (Sandbox Code Playgroud)

在这里destinationObject没有得到更新。任何人都可以建议此代码的问题。

java copy object deep-copy modelmapper

1
推荐指数
1
解决办法
4366
查看次数

将元素从 List&lt;byte&gt; 复制到另一个 List&lt;byte&gt; 进行深度复制

我正在使用 .NET Framework 4.7 开发 C# 库。

我有两个List<byte>,我想将其中一个中的所有元素复制到另一个中。

我想重用列表,所以当我必须将一个列表的内容复制到另一个列表时,我不想创建一个新列表。

List<byte> list1 = new List<byte>() { 1, 2, 3, 4, 5, 6 };
List<byte> list2 = new List<byte>() { 7, 8, 9, 10, 11, 12 };
Run Code Online (Sandbox Code Playgroud)

如果我想的内容复制list2list1,我有什么做的,如果我想替换的内容list1用的内容list2

我想复制值,而不是复制对list2. 如果我修改了一个值,list2我不希望在list1.

我还没有找到任何在List<T>. 我认为我唯一可以使用的是AddRange但我还没有找到任何关于此方法是否执行深层或吞咽复制的参考。

如果我想list1list2做深拷贝的内容替换 的内容,我该怎么做?

c# deep-copy

1
推荐指数
1
解决办法
361
查看次数

如何在 Dart 中深度复制嵌套列表?

如何在 dart 中创建嵌套列表的副本?在此代码中,我对副本所做的更改也会在原始代码中更改

List board = [[0,0,0], [0,0,0], [0,0,0]];
List boardCopy = List.from(board); // create copy of the board

boardCopy[0][0] = 1; // change copy

print(board); // print original board

OUTPUT:
  [[1,0,0], [0,0,0], [0,0,0]] <-- it has changed the original board!!!
Run Code Online (Sandbox Code Playgroud)

list deep-copy nested-lists dart flutter

1
推荐指数
1
解决办法
1178
查看次数

为什么在使用 Python 的 copy.deepcopy 时会出现此 TypeError?

我刚刚遇到这个错误copy.deepcopy

import copy
import datetime


class Hours(datetime.timedelta):
    # Using __new__ because timedelta is immutable
    # See /sf/answers/1577224141/.
    def __new__(cls, hours):
        return datetime.timedelta.__new__(cls, hours=hours)


h1 = Hours(2)
h2 = copy.deepcopy(h1)  # TypeError: __new__() takes 2 positional arguments but 4 were given
Run Code Online (Sandbox Code Playgroud)

这是完整的回溯:

Traceback (most recent call last):
  File "/Users/xxxx/Documents/PyCharmProjects/Flow/backend/deepcopy_test.py", line 11, in <module>
    h2 = copy.deepcopy(h1)  # TypeError: __new__() takes 2 positional arguments but 4 were given
  File "/Users/xxxx/.conda/envs/qtdesktopapp/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File …
Run Code Online (Sandbox Code Playgroud)

python deep-copy

1
推荐指数
1
解决办法
473
查看次数

Python 使用 type() 进行深度复制

我正在做一个 leetcode 问题,遇到了一个问题,我必须深度复制一个列表。我找到了一个使用 type() 的解决方案,如下所示:

orignallist=[1,2,3]
deepcopylist=type(orignallist)(orignallist)
Run Code Online (Sandbox Code Playgroud)

果然,它有效,并且 deepcopylist 是一个深度复制,但这到底是如何工作的呢?Python 的 type() 文档没有提到这一点,我也不明白括号如何与添加的第二个(orignallist)一起使用。

python deep-copy

1
推荐指数
1
解决办法
214
查看次数

创建不使用虚拟基类的对象的克隆

#include<iostream>
using namespace std;

class Something
{
  public:
  int j;
  Something():j(20) {cout<<"Something initialized. j="<<j<<endl;}
};

class Base
{
  private:
    Base(const Base&) {}
  public:
    Base() {}
    virtual Base *clone() { return new Base(*this); }
    virtual void ID() { cout<<"BASE"<<endl; }
};

class Derived : public Base
{
  private:
    int id;
    Something *s;
    Derived(const Derived&) {}
  public:
    Derived():id(10) {cout<<"Called constructor and allocated id"<<endl;s=new Something();}
    ~Derived() {delete s;}
    virtual Base *clone() { return new Derived(*this); }
    virtual void ID() { cout<<"DERIVED id="<<id<<endl; } …
Run Code Online (Sandbox Code Playgroud)

c++ virtual deep-copy shallow-copy

0
推荐指数
1
解决办法
895
查看次数

PIMPL习语和复制语义

我正在使用一个库,其中包含许多使用PIMPL习语构建的类.在我看来,我发现不好的是,这些类是使用a std::shared_ptr实现的.这意味着对象实际上是"隐式共享"的.我的问题是:这是实施PIMPL的正确方法吗?或PIMPL和"隐式共享"是两种不同的习语,因此默认情况下不应该混合使用?处理复制语义的正确方法是什么?

c++ pimpl-idiom deep-copy

0
推荐指数
1
解决办法
1248
查看次数

Decimal()对象的Python deepcopy()

我正在努力使用deepcopy()一个包含Decimal值的类.所以我尝试自己深度复制一个Decimal对象,但也失败了.我在这里误解了什么?

from copy import deepcopy
from decimal import Decimal

## Deepcopy an array ##
a = [1,2,3,4]
b = deepcopy(a)
a is b
# False

## Deep copy a Decimal ##
a = Decimal('0.123')
b = deepcopy(a)
a is b
# True

## Deepcopy a class containing a Decimal ##
class A(object):
    def __init__(self, dec):
        self.myDecimal = Decimal(dec)

a = A('0.123')
b = deepcopy(a)
a is b
# False

a.myDecimal is b.myDecimal
# True
Run Code Online (Sandbox Code Playgroud)

类复制但小数引用保持不变.

python class decimal deep-copy

0
推荐指数
1
解决办法
311
查看次数

在Java中深度复制NavigableMap

我有NavigableMap以下格式:

NavigableMap <Long, String> mymap = new ConcurrentSkipListMap <Long, String> ();
//.......some operations

NavigableMap <Long, String> newmap;
//clone mymap into newmap;
Run Code Online (Sandbox Code Playgroud)

如何将内容深层复制/克隆mymapnewmap?Java 8应该可以正常使用.

java hashmap deep-copy concurrenthashmap java-stream

0
推荐指数
1
解决办法
79
查看次数