Werte im Array gruppieren

Mal wieder ein paar Zeilen Code aus der täglichen Praxis. Ich habe heute Morgen eine Lösung benötigt, die mir die Anzahl gleicher Zeilen in einem Array zurückliefert.
Meine Lösung sieht dabei wie folgt aus:

Function Get-ArrayValueCount {
  param($array)
  begin {
    $hash=@{}
  }
  process {
    $Array | %{ $hash[$_] =$hash[$_] +1 }
    $hash.GetEnumerator() |?{$_.value-gt0} |%{
       New-ObjectPSObject-Property@{
         Value=$_.keyCount=$_.value
       }
     }
   }
 }

Hier ein kleines Beispiel für die Benutzung:

cls
$Vorname=@()
$Vorname+="Anna"
$Vorname+="Willi"
$Vorname+="Anna"
$Vorname+="Werner"
$Vorname+="Willi"
$Vorname+="Anna"

Get-ArrayValueCount $Vorname | sortCount

Comments are currently closed.