2017-08-26 105 views
0

有沒有一種方法可以實現通用樹數據結構,其中每個層次結構級別上的節點都可以容納不同(有類型)的有效載荷對象?C#具有多種有效載荷類型的通用樹

我希望能夠用鍵查詢樹並獲取類型化結果而不是對象。我已經嘗試過使用泛型接口,但似乎我仍然需要爲每個有效內容類型編寫單獨的查詢例程。通用的解決方案會更加優雅,儘管只使用一種通用方法進行投射會產生問題。也許沒有辦法?

也CodePlex或GitHub中的所有實現似乎只允許一個有效載荷類型,然後在整個樹中的所有節點中使用。我想在每個層次級別分離有效載荷對象。

感謝,POM

+0

如果你想在任何節點上存儲* anything *然後存儲一個'object'。如果存儲的對象是一個值類型,那麼您將會發生拳擊,但除非存在某種*通用性,否則您無能爲力,您可以利用要分配給任何給定節點的對象。 – InBetween

回答

1

您可以創建一個對象樹(我知道你不想要它,但看到沒有其他選擇)和你的方法來查詢你可以設置一個類型。

例如,tree.Query<T>()並返回一個T元素列表。

希望它有幫助。