Как заполнить древовидную структуру путем к файлу, который сохраняется в базе данных

Предположим, я сохранил путь к файлу в базе данных. Теперь я хочу показать путь к файлу через дерево. Я нашел один пример, который работает нормально, но не знаю, когда в базе данных будет огромное количество данных, тогда популяция в виде дерева будет зависать или занимать слишком много времени. здесь я даю код. пожалуйста, проверьте и скажите, какие из них могут быть исправлены, в результате производительность будет хорошей, когда в БД будут большие данные.

public static class MyDataBase
{
    private static List<string> fields = new List<string>();

    public static void AddField(string field)
    {
        fields.Add(field);
    }

    public static IList<string> FieldsInMyColumn()
    {
        return fields;
    }
}

public void CreateTreeView()
    {
        foreach (string field in MyDataBase.FieldsInMyColumn())
        {
            string[] elements = field.Split('\\');
            TreeNode parentNode = null;

            for (int i = 0; i < elements.Length - 1; ++i)
            {
                if (parentNode == null)
                {
                    bool exits = false;
                    foreach (TreeNode node in myTreeview.Nodes)
                    {
                        if (node.Text == elements[i])
                        {
                            exits = true;
                            parentNode = node;
                        }
                    }

                    if (!exits)
                    {
                        TreeNode childNode = new TreeNode(elements[i]);
                        myTreeview.Nodes.Add(childNode);
                        parentNode = childNode;
                    }
                }
                else
                {
                    bool exits = false;
                    foreach (TreeNode node in parentNode.Nodes)
                    {
                        if (node.Text == elements[i])
                        {
                            exits = true;
                            parentNode = node;
                        }
                    }

                    if (!exits)
                    {
                        TreeNode childNode = new TreeNode(elements[i]);
                        parentNode.Nodes.Add(childNode);
                        parentNode = childNode;
                    }
                }
            }

            if (parentNode != null)
            {
                parentNode.Nodes.Add(elements[elements.Length - 1]);
            }
        }
    }

 private void button1_Click(object sender, EventArgs e)
    {
        MyDataBase.AddField(@"c:\jsmith\project1\hello.cs");
        MyDataBase.AddField(@"c:\jsmith\project1\what.cs");
        MyDataBase.AddField(@"c:\jsmith\project2\hello.cs");
        MyDataBase.AddField(@"c:\jsmith\project1\tdp.cs");
        MyDataBase.AddField(@"c:\jsmith\project2\ship.cs");
        MyDataBase.AddField(@"d:\jsmith\project1\hello404.cs");
        MyDataBase.AddField(@"c:\jsmith1\project2\ship.cs");
        CreateTreeView();
    }

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос