迭代c#(树)中的嵌套自定义对象

时间:2015-12-27 14:13:53

标签: c# .net generics tree

我正在处理需要我以树格式表示数据的项目,我尝试迭代对象,但是在访问和向内部对象分配数据时遇到问题,主类看起来像这样

public class Node
{
    public string Name { get; set; }
    public List<Node> Child { get; set; }
    public Node()
    {
        this.Child = new List<Node>();
    }
}

并且有一个函数将通过迭代列表

来获取List并创建Node of Node类
public Node NodeLister(myclass value)
    {
        List<Node> holder = new List<Node>();
        Node head = new Node();
        Node temp;
        int i = 0;
        foreach (MenuElements item in value.value)
        {
            if (i == 0)
            {
               head =new Node { Name = item.Name };
            }
            else
            {
                temp = new Node { Name = item.Name };
                holder.Add(temp);
                holder = holder[holder.IndexOf(temp)].Child;
            }
            i++;
        }
        head.Child = holder;
        return head;
     }

部分

 holder = holder[holder.IndexOf(temp)].Child;

必须以某种方式具有指针类型的效果,因为此语句直接分配值并擦除先前的数据而不是迭代它。 myclass Class看起来如下所示。

public class myclass
{

    public List<MenuElements> value { get; set; }
}

public class MenuElements
{

    public string Name { get; set; }

}

我知道这不会创建一棵树,但解决这个问题将有助于我前进,并创建树。任何帮助将不胜感激

0 个答案:

没有答案