Powershell, как считать все элементы в многомерном массиве - PullRequest
0 голосов
/ 20 ноября 2018

Я пытался выяснить, как подсчитать все элементы в многомерном массиве.Но .Count возвращает только первое измерение.

после того, как я сдался, чтобы найти правильное решение, я просто создал этот цикл, чтобы переместить все элементы в первое измерение и сосчитать их.но на самом деле это всего лишь взлом.

$mdarr = @((0,1,2,3,4),(5,6,7,8,9),(10,11,12,13,14))
$filecount = New-Object System.Collections.ArrayList
for($i = 0; $i -lt $mdarr.Length; ++$i) {
        $filecount += $mdarr[$i]
}
$filecount.Count

Как бы это было сделано правильно без предварительной обработки массива?

1 Ответ

0 голосов
/ 20 ноября 2018

В цикле вы добавляете элементы $mdarr[$i].Позже вы посчитаете элементы результата слияния.Вместо добавления к ArrayList вы можете сохранить счет:

$xs = @((0,1,2,3,4),(5,6,7,8,9),(10,11,12,13,14))
$sum = 0;
foreach ($x in $xs) { $sum += $x.Count }
$sum  // 15

# alternatively
$xs | % { $sum += $_.Count }

# or
($xs | % { $_.Count } | Measure-Object -Sum).Sum
# or
$xs | % { $_.Count } | Measure-Object -Sum | select -Expand Sum
...