arrays - 如何在Powershell中对数组进行分组?

标签 arrays powershell grouping

使用 PowerShell 转换数组的简单有效的方法是什么? 初始数组有两个属性 NumberColor

Number  Color
1       Red
2       Red
3       Red
4       Red
5       Blue
6       Blue
7       Green
8       Green
9       Green

输出数组应该是这样的:

Color   Number
Red     1,2,3,4
Blue    5,6
Green   7,8,9

最佳答案

# Input objects.
$objects = @'
Number,Color
1,Red
2,Red
3,Red
4,Red
5,Blue
6,Blue
7,Green
8,Green
9,Green
'@ | ConvertFrom-Csv

$objects |
  Group-Object Color |
  Select-Object @{ n='Color'; e='Name'}, @{ n='Number'; e={ $_.Group.Number } }

以上产量:

Color Number
----- ------
Blue  {5, 6}
Green {7, 8, 9}
Red   {1, 2, 3, 4}

注意:由于Group-Object 的工作原理,Color 值在输出中按字母顺序排序。

另请参阅:

关于arrays - 如何在Powershell中对数组进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61490684/

相关文章:

java - 返回随机字符串数组

Java如何将数组的一个元素与同一数组的所有其他元素进行比较

powershell - Azure New-AzureRmResource "Account Type"丢失,但如果我添加它 "Parameter not found"

powershell - 静态方法/属性可以保存为 PowerShell 对象吗?

java - 如何在java中存储、排序和分组项目(列表/设置/映射)?

C语言,对数组中的元素进行分组

c++ - 创建类对象时出错

java - 为什么我无法在 java 中创建 ComboBox 数组?

powershell - powershell 中 ForEach 和 ForEach-Object 的区别

python - 元组列表,第一个元组作为键,按键分组到字典中