您可以使用递归算法来构建树形结构。首先,您需要将文本按照列分隔符拆分成行,并将每行存储为对象。然后,您可以使用递归函数来构建树形结构。 首先,创建一个表示节点的类,它包含一个值属性和一个子节点列表属性: ``` Public Class Node Public Value As String Public Children As List(Of Node) Public Sub New(ByVal value As String) Me.Value = value Me.Children = New List(Of Node) End Sub End Class ``` 然后,创建一个辅助函数,它接收一个行列表和当前列索引作为参数,并返回一个节点列表。该函数使用递归算法来构建树形结构。每个节点都包含当前列的值,并将后续列的行列表传递给递归调用。 ``` Private Function BuildTree(ByVal rows As List(Of String()), ByVal columnIndex As Integer) As List(Of Node) Dim nodes As New List(Of Node) ' 遍历行列表 For Each row As String() In rows ' 检查当前行是否已经被处理完 If columnIndex < row.Length Then ' 获取当前列的值 Dim value As String = row(columnIndex) ' 查找已经存在的节点 Dim node As Node = nodes.FirstOrDefault(Function(n) n.Value = value) ' 如果节点不存在,则创建新节点并添加到列表中 If node Is Nothing Then node = New Node(value) nodes.Add(node) End If ' 递归调用,将后续列的行列表传递给子节点 Dim childNodes As List(Of Node) = BuildTree(rows, columnIndex + 1) ' 将子节点添加到父节点 node.Children.AddRange(childNodes) End If Next Return nodes End Function ``` 您可以将文本拆分成行,并调用辅助函数来构建树形结构: ``` Private Sub GenerateTree(ByVal text As String, ByVal columnSeparator As String) ' 拆分文本成行 Dim rows As New List(Of String()) Dim lines As String() = text.Split(Environment.NewLine) For Each line As String In lines rows.Add(line.Split(columnSeparator)) Next ' 构建树形结构 Dim rootNodes As List(Of Node) = BuildTree(rows, 0) ' 可以在这里对树形结构做进一步的处理或展示 End Sub ``` 以上代码仅为示例,您可能需要根据您的实际需求进行调整。希望能对您有所帮助! [2024-03-13 17:20:09 | AI写代码神器 | 1735点数解答]