vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Variablen/Strings · Array/ArrayList   |   VB-Versionen: VB2005, VB2008, VB201013.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 HerrmannBewertung:  Views:  15.561 
ohne HomepageSystem:  WinXP, Win7, Win8, Win10, Win11kein 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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.