У меня есть список, содержащий объекты строк данных, которые имеют два атрибута: Id и prentId. Пример хотел бы это:Рекурсивно удалить дочерние родительские отношения из списка
id ParentId
130 -1
131 130
132 131
133 131
134 132
135 131
136 132
137 136
138 136
139 136
143 136
Если список будет виден из иерархической точки зрения было бы выглядеть следующим образом:
130
131
132
134
136
137
138
139
143
133
135
То, что я хотел бы сделать, это создать алгоритм, который удаляет все элементы и подэлементы, которые родители соответствуют конкретному идентификатору.
Например, если выбранный идентификатор равен 132, тогда элементы с идентификаторами 132, 134, 136, 137, 138, 139, 143 должны быть удалены.
То, что я пытался до сих пор идет, как этот
Private Function RemoveRecursive(ByRef values As List(Of DataRow), value As String) As List(Of DataRow)
For index As Integer = values.Count - 1 To 0 Step -1
If Not IsDBNull(values(index)("parent")) AndAlso values(index)("parent") = value Then
values.RemoveAt(index)
Return RemoveRecursive(values, value)
value = values(index)("id")
End If
Next
Return values
End Function
Я сделал это потому, что код может быть легко переведено с vb.net на C# и наоборот, и кроме того, так как C# и VB используют те же типы данных. (Вот переводчик http://converter.telerik.com/) – Andy
Я понимаю, и я хорошо знаю об этом, но этот вопрос довольно общий, поэтому я подумал, что не будет проблемой также включать тег C#. Извините за неудобства ... – Andy