我有一个接受层次结构数据(父子关系)的函数,该数据将保存到数据库中,并根据其层次结构逐一插入。为了确保将数据保存在正确的层次结构中,我需要先进行验证,然后再保存。下面是示例层次结构。如果可以看到子级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