Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

powershell - Count occurence of data in array

I have an array like this:

OptiPlex 790
Precision WorkStation T7500
Precision WorkStation T7400
Precision T1500
Precision WorkStation T3500
CELSIUS R650
VMware Virtual Platform
Precision T1500
OptiPlex GX620

I want to get the count of array and will add that in new array.

Element:Count
OptiPlex 790 1 
Precision WorkStation T7500 1 
Precision WorkStation T7500 1

I want to store this value in new array. So, i will use it later/somewhere else.

$array = @()
for ($i=1; $i -le $rowMax-1; $i++) {
    $Model = $sheet.Cells.Item($rowModel+$i, $colModel).text
    Write-Host ("I am reading data on row: " + $i)
    $array += $Model
}

$array | Group

At the moment above script is working fine but I don't know how I can add this data to new array.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There is a Group-Object cmdlet which you can use for that:

$array | group | select Name, Count

Output:

Name                        Count
----                        -----
OptiPlex 790                    1
Precision WorkStation T7500     1
Precision WorkStation T7400     1
Precision T1500                 2
Precision WorkStation T3500     1
CELSIUS R650                    1
VMware Virtual Platform         1

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...