[英]C# - Merge two objects of the same class and update all references?
我有一些包含在Bar对象中的Foo对象:
class Foo
{
int uniqueId; // every Foo has a different ID.
List<int> data;
}
class Bar
{
Foo foo = new Foo();
}
有时我想合并属于不同Bar的Foo对象,如下所示:
public void MergeWith(Bar otherBar)
{
this.foo.uniqueId = otherbar.foo.uniqueId;
this.foo.data.AddRange(otherbar.foo.data);
otherBar.foo = this.foo;
// Now both Bar objects refer to the same Foo, which contains all the data.
}
Bar bar1;
Bar bar2;
bar1.MergeWith(bar2);
这可以。 问题在于这些Bar对象已经将对Foo
对象的引用分发给Baz
对象。 Baz
有一个List<Foo>
它是从多个来源收集的。
我怎样才能知道Baz
对象的Foo
何时过时? Foo
对象是否应该引用其“较新的” Foo
链表样式? 或者,还有更好的方法?
我只能想到凌晨的两种方式:
hth
马里奥
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.