title: Tree data structure in C#
body: <p>I was looking for a tree or graph data structure in C#, but I guess there isn't one provided. <a href="http://msdn.microsoft.com/en-us/library/ms379574.aspx" rel="noreferrer">An Extensive Examination of Data Structures Using C# 2.0</a> a bit about why.  Is there a convenient library which is commonly used to provide this functionality?  Perhaps through a <a href="https://en.wikipedia.org/wiki/Strategy_pattern" rel="noreferrer">strategy pattern</a> to solve the issues presented in the article.</p>
  <p>I feel a bit silly implementing my own tree, just as I would implementing my own ArrayList.</p>
  <p>I just want a generic tree which can be unbalanced.  Think of a directory tree.  <a href="https://itu.dk/research/c5/" rel="noreferrer">C5</a> looks nifty, but their tree structures seem to be implemented as balanced red-black trees better suited to search than representing a hierarchy of nodes.</p>