首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有一项的多数组

具有一项的多数组
EN

Stack Overflow用户
提问于 2017-01-11 16:22:18
回答 3查看 210关注 0票数 2

如果我在PowerShell中有一个只有一个条目的多数组,并且我将对该数组进行排序,它会将行数从1更改为3。但如果我在该多数组中有多个条目,则在排序后它将保持相同的行数。

代码语言:javascript
运行
复制
PS C:\Users\user> $a = ,("2", "A", "Urs")

PS C:\Users\user> $a
2
A
Urs

PS C:\Users\user> $a.Count
1

PS C:\Users\user> $a = $a | Sort-Object

PS C:\Users\user> $a
2
A
Urs

PS C:\Users\user> $a.Count
3

PS C:\Users\user> $a = ,("2", "A", "Urs")

PS C:\Users\user> $a.Count
1

PS C:\Users\user> $a += ,("3", "B", "Max")

PS C:\Users\user> $a
2
A
Urs
3
B
Max

PS C:\Users\user> $a.Count
2

PS C:\Users\user> $a = $a | Sort-Object

PS C:\Users\user> $a.Count
2
EN

回答 3

Stack Overflow用户

发布于 2017-01-11 16:37:48

言之有礼

代码语言:javascript
运行
复制
$a = ,("2", "A", "Urs")
$a.Count

上面的$a是只有一个元素的多数组,所以计数为1

在$a下面是包含三个元素的数组

代码语言:javascript
运行
复制
$a = $a | Sort-Object
$a.Count
票数 0
EN

Stack Overflow用户

发布于 2017-01-11 16:57:07

对不起,我没有足够的名气来添加评论而不是回答。

你所有的问题都是因为管道而发生的。管道从流中收集结果。从流中,您无法判断管道返回的是单例还是集合。因此,只有一个元素的二维数组就变成了一维。

票数 0
EN

Stack Overflow用户

发布于 2017-01-11 19:36:16

我做了一个很糟糕的变通方法,但它是有效的。

代码语言:javascript
运行
复制
$newarray = New-Object System.Collections.ArrayList
$newmultiarray = New-Object System.Collections.ArrayList
$a = ,("test", "3333", "peter", "peter2")
$a += ,("rrrr", "8888", "max", "rhzzh")

$stringlist = $a | Sort-Object @{Expression={$_[0]}; Ascending=$True} | %{ "$($_[0]),$($_[1]),$($_[2]),$($_[3])" }

$arraymulti =$stringlist -split "[\r\n]"

foreach ($i in $arraymulti){
    $array = $i -split ","
        foreach ($y in $array){
            [void]$newarray.Add($y)
        }
    [void]$newmultiarray.Add($newarray)
    $newarray = New-Object System.Collections.ArrayList
    }

$newmultiarray
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41585856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档