Ich haben Baumklassen wie folgt:sortieren bestimmte Objekte
Public Class HtmlSection
Property Name As String
Property SubSections As List(Of HtmlSubSection)
End Class
Public Class HtmlSubSection
Property Name As String
Property SelectedSentences As List(Of HtmlSentence)
End Class
Public Class HtmlSentence
Property Sentence As String
Property Position As Integer
End Class
In folgenden Verfahren i für jeden Abschnitt für alle Sätze sind auf der Suche nach bestimmtem Abschnitt gehört, am Ende i die Datensätze nach Position asc sortieren. Aber manchmal müssen die Positionen geändert werden (direkt in den Sätzen), weil es Lücken geben könnte, nachdem ich OrderBy bestellt habe, aber es könnte wie folgt aussehen. Gibt es einen einfachen Weg wie Linq, um die Positionen dieser Sätze zu ändern, um Lücken zu vermeiden, sagen wir in der Methode, die ich unten zeige.
2
5
77
1001
i Positionen ändern 0 in unserem Beispiel beginnen möchten:
0
1
2
3
Methode:
Public Function GetSelectedSentencesOnSectionLevel(section As HtmlSection) As List(Of HtmlSentence)
Dim sentencesList As New List(Of HtmlSentence)
For Each exSection As HtmlSection In _htmlFactory.SectionsList
If exSection.Name = section.Name Then
Dim sentencesList As New List(Of HtmlSentence)
If Not IsNothing(exSection.SubSections) Then
For Each exSubsection As HtmlSubSection In exSection.SubSections
If Not IsNothing(exSubsection.SelectedSentences) Then
For Each exSentence As HtmlSentence In exSubsection.SelectedSentences
sentencesList.Add(exSentence)
Next
End If
Next
End If
End If
Next
'sort sentences by Posiions ascending
sentencesList = sentencesList.OrderBy(Function(x) x.Position).ToList()
Return sentencesList
End Function
EDIT: mehr Code für Helfer:
global Klasse:
Public Class HtmlFactory
Property SectionsList As List(Of HtmlSection)
Sub New()
SectionsList = New List(Of HtmlSection)
End Sub
Sub New(pSectionsList As List(Of HtmlSection))
_SectionsList = pSectionsList
End Sub
Public Sub AddSection(section As HtmlSection)
SectionsList.Add(section)
End Sub
....
An welcher Sammlung arbeiten Sie? –
@BozhidarStoinev was meinst du, alles oben. – Dino
Ich meine, dass Sie nicht bestimmen können, was der Unterabschnitt eines Satzes ist, wenn Sie nur 'List (Of HtmlSentence)' haben ... Woher kommt 'exSection'? –