0

C# に文字列のリストがあります。

List<string> { "A", "B", "C", "D" };

これらの文字列は、製品カテゴリの「タイトル」です。

次のようなノードのブランチに変換する必要があります。

A > B > C > D

リスト内のアイテムの順序によって、ブランチ内の位置が決まります。A はルート ノードで、D はリーフ ノードです。

私のオブジェクトが呼び出されWebBrowseNode、プロパティがあります:

  • string Title( string)
  • List<WebBrowseNode> Children

私はこれを少なくとも 1 時間行っていますが、これを行うための適切なアルゴリズムが見つかりません。

4

1 に答える 1

2

アイデアは、リストの最後から始めることです。

WebBrowseNode lastNode = null;
for (int numItem = list.Count - 1; numItem >= 0; numItem--)  // Go from the end to the beginning of the list
{
    string title = myStringList[numItem];

    lastNode = new WebBrowseNode
    {
        Title = title,
        Children = { lastNode }                              // Adds lastNode to the Children list
    };
}

WebBrowseNode root = lastNode;
于 2013-07-23T15:46:32.510 に答える