如何验证父子树的正确层次结构

时间:2018-08-17 03:54:40

标签: c# c#-4.0 c#-3.0

我有一个接受层次结构数据(父子关系)的函数,该数据将保存到数据库中,并根据其层次结构逐一插入。为了确保将数据保存在正确的层次结构中,我需要先进行验证,然后再保存。下面是示例层次结构。如果可以看到子级1.3和子级1.3.1,则说明层次结构不正确,验证应返回一条消息,指出层次结构不正确。 “>”符号的数量表示项目的层次结构序号,例如,“>”级别1,“ >>”级别2,“ >>>”级别3,依此类推。

实体类

 public class Person
        {
            public string Name
            { get; set; }

            public int Level
            { get; set; }


        }

代码

            var text = textBox1.Text.Replace("\r", "\n").Replace("\n\n", "\n").Trim();
            string[] array = text.Split(new char[]
            {
                '\n'
            });

            List<Person> list = new List<Person>();
            for (int i = 0; i < array.Length; i++)
            {
                string text2 = array[i];
                Person person = new Person
                {
                    // Regex.Replace(str, @"[^\d]", String.Empty);
                    Name = Regex.Replace(text2.Trim(), ">", String.Empty),
                    Level = text2.Trim().LastIndexOf(">", StringComparison.Ordinal) + 1,
                };
                list.Add(person);
            }

示例文字

   Parent1
    >child 1.1
      >>child 1.1.1
        >>>child 1.1.2
    >child 1.2
    >child 1.3
        >>>child 1.3.1
          >>>>child 1.3.2
    Parent2
      >>child 2.1

0 个答案:

没有答案