C# 扩展属性还是包装类?

C# 扩展属性还是包装类?,c#,.net,oop,properties,extension-methods,C#,.net,Oop,Properties,Extension Methods,有一个有很多节点的树,它经历了4个处理阶段 在一个特定的阶段,比如第3阶段,我需要一些额外的属性(整数)来完成所需的处理 我不是树节点类的创建者,因此我不想修改该类并添加这些属性。此外,这些特性对于第3阶段非常特殊 “添加”这些属性的最佳方法是什么?如果我用一个包装器类包装每个节点,那就太复杂了,因为我必须维护一个[NodeID->Wrapped node]字典,这是一种性能非常密集的方法。它可以很容易地拥有300k节点,因此字典可以很容易地耗尽内存 还有什么方法可以解决这个问题呢?如果字典对于

有一个有很多节点的树,它经历了4个处理阶段

在一个特定的阶段,比如第3阶段,我需要一些额外的属性(整数)来完成所需的处理

我不是树节点类的创建者,因此我不想修改该类并添加这些属性。此外,这些特性对于第3阶段非常特殊

“添加”这些属性的最佳方法是什么?如果我用一个包装器类包装每个节点,那就太复杂了,因为我必须维护一个[NodeID->Wrapped node]字典,这是一种性能非常密集的方法。它可以很容易地拥有300k节点,因此字典可以很容易地耗尽内存


还有什么方法可以解决这个问题呢?

如果字典对于您的案例来说过于“性能密集”,那么很可能包装器类和扩展属性都不适合您。您可能需要澄清您的性能要求,以便有人能够提出可行的方法。你好,Alexei,谢谢您的回复。有些情况会导致字典中有50万个条目,从而导致outOfMemory异常。我试过这个,但效果不好。300K听起来不太好。。。假设您使用的是x64 build(),那么从数百万个条目开始,我会遇到麻烦。@AlexeiLevenkov在更糟糕的情况下,可能会有几百万个条目。如果字典对于您的情况来说过于“性能密集”,那么很可能包装器类和扩展属性都不适合您。您可能需要澄清您的性能要求,以便有人能够提出可行的方法。你好,Alexei,谢谢您的回复。有些情况会导致字典中有50万个条目,从而导致outOfMemory异常。我试过这个,但效果不好。300K听起来不太好。。。假设您使用的是x64 build(),那么从数百万条条目开始,我会遇到麻烦。@AlexeiLevenkov在更糟糕的情况下,可能会有几百万条条目。