我已将对象列表定义为List<NewLayerCounterMethod> NewLayer = new List<NewLayerCounterMethod>();
,其中类NewLayerCounterMethod
中的每个对象都有四个属性,例如:VehicleType, VehicleCounter,Counter,Updating
。
对象数量NewLayer
为10,我想将NewLayer[7]
复制到NewLayer[5]
,这样如果NewLayer[7]
发生更改,NewLayer[5]
将不会更改。
请注意,当我想要将一个对象的属性替换为另一个对象的属性时,我不想创建一个新对象,这使得它与Stackoverflow上的其他问题有所不同,我认为它不是重复。< / p>
答案 0 :(得分:1)
您需要克隆该对象,否则您只需将引用存储在两个字段中并更改它们。看到这个答案:
Creating a copy of an object in C#
How do you do a deep copy of an object in .NET (C# specifically)?
答案 1 :(得分:0)
在这种情况下,您需要向NewLayerCounterMethod
类添加一个函数,在该类中将另一个类的所有属性复制到新类。它看起来有点像那样:
public void TakeProperties(NewLayerCounterMethod otherObject)
{
propA = otherObject.propA;
propB = otherObject.propB;
//And so on for all properties left
}
您可以添加警卫,以便只有在新值与旧值不同时才更新属性,但我建议将这些警卫直接添加到属性中。
上面的方法被称为:
NewLayer[5].TakeProperties(NewLayer[7]);