Powershell how to count all elements in a multidimensional array
up vote
0
down vote
favorite
I've been trying to figure out how to count all elements in an multidimensional array. But .Count
only returns the first dimension.
after i gave up to find a proper solution i just created this loop to move all elements to the first dimension and count them. but this is really only a hack.
$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
How would this be done properly without processing the array first?
arrays arraylist multidimensional-array
add a comment |
up vote
0
down vote
favorite
I've been trying to figure out how to count all elements in an multidimensional array. But .Count
only returns the first dimension.
after i gave up to find a proper solution i just created this loop to move all elements to the first dimension and count them. but this is really only a hack.
$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
How would this be done properly without processing the array first?
arrays arraylist multidimensional-array
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I've been trying to figure out how to count all elements in an multidimensional array. But .Count
only returns the first dimension.
after i gave up to find a proper solution i just created this loop to move all elements to the first dimension and count them. but this is really only a hack.
$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
How would this be done properly without processing the array first?
arrays arraylist multidimensional-array
I've been trying to figure out how to count all elements in an multidimensional array. But .Count
only returns the first dimension.
after i gave up to find a proper solution i just created this loop to move all elements to the first dimension and count them. but this is really only a hack.
$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
How would this be done properly without processing the array first?
arrays arraylist multidimensional-array
arrays arraylist multidimensional-array
asked Nov 20 at 8:23
secondplace
417
417
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
In the loop you are adding the elements of $mdarr[$i]
. You later count the elements of the merge result. Instead of the adding to an ArrayList
you could keep a count:
$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
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
In the loop you are adding the elements of $mdarr[$i]
. You later count the elements of the merge result. Instead of the adding to an ArrayList
you could keep a count:
$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
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
add a comment |
up vote
1
down vote
accepted
In the loop you are adding the elements of $mdarr[$i]
. You later count the elements of the merge result. Instead of the adding to an ArrayList
you could keep a count:
$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
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
In the loop you are adding the elements of $mdarr[$i]
. You later count the elements of the merge result. Instead of the adding to an ArrayList
you could keep a count:
$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
In the loop you are adding the elements of $mdarr[$i]
. You later count the elements of the merge result. Instead of the adding to an ArrayList
you could keep a count:
$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
edited Nov 20 at 8:52
answered Nov 20 at 8:40
Micha Wiedenmann
10.1k1364102
10.1k1364102
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
add a comment |
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
The first options seems to be the fastest after doing some measuring. And the two last ones look a bit cleaner. Thank you for multiple solutions.
– secondplace
Nov 20 at 9:32
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53388860%2fpowershell-how-to-count-all-elements-in-a-multidimensional-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown