Rubrik: Variablen/Strings · Array/ArrayList | VB-Versionen: VB2005, VB2008, VB2010 | 13.03.12 |
Anzahl gleicher Elemente in einem Array bestimmen Die vorgestellte Funktion ermittelt aus einem vorgegebenen Quell-Array die Elemente, die gleich sind und die zugehörigen Anzahlen. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 15.561 |
ohne Homepage | System: WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Gegeben sei ein Feld, in dem Werte mehrfach vorkommen. Es soll ermittelt werden, wie oft jedes Mehrfach-element vorkommt.
Die folgende Funktion setzt voraus, dass das 'Quell-Array' nach Werten sortiert ist, sodass gleiche Elemente direkt hintereinander stehen. Dann wird bei Anwendung der Funktion ein zweidimensionales Feld als Ergebnis erstellt, das das jeweilige Mehrfach-Element und dessen Anzahl im Quell-Array enthält.
Die Funktion:
''' <summary> ''' Ermitteln der Anzahlen von mehrfach vorkommenden Elementen in einem eindimensionalen Array ''' </summary> ''' <param name="arr">das zu untersuchende Array (muss sortiert sein!)</param> ''' <returns>Array (zweidimensional) mit den Paaren 'Wert und Anzahl' ''' gemäß der Reihenfolge der Werte im sortierten Original-Array</returns> Public Function getValAndNumberOfeqElements(arr As Array) As Object(,) Dim Temp(,) As Object, i As Short = -1, lastV, z As Object For Each actV As Object In arr If IsNothing(lastV) OrElse Not lastV.Equals(actV) Then i += 1 ReDim Preserve Temp(1, i) z = 1 Temp(0, i) = actV Temp(1, i) = z lastV = actV Else z += 1 Temp(1, i) = z End If Next Return Temp End Function