从数组中删除重复值并将 object 转换为标题大小写
Remove duplicate values from array and convert object into title case
我不会遍历数组并删除数组中重复的任何 object/value。
我尝试使用此代码将字符串转换为数组
$a = "a,b,a,c,d,a,g,G,h,A,,,,"
$option = [System.StringSplitOptions]::RemoveEmptyEntries
$a= $a.Split(",", $option);
$a= $TextInfo.ToTitleCase($a.Trim())
然后我使用以下方法删除任何重复的值
$a = $a | Select-Object -Unique
它在某些列表中时好时坏,它对某些列表有效,但对某些列表无效。
想要一个没有重复值的数组
你可以这样做:
$a = "a,b,a,c,d,a,g,G,h,A,,,," -split ',' |
Where-Object { $_ -match '\S' } |
ForEach-Object {(Get-Culture).TextInfo.ToTitleCase($_.Trim())} |
Select-Object -Unique
$a
输出:
A
B
C
D
G
H
在获取唯一值之前,您可以使用 ToUpper()
将拆分数组转换为大写:
❯ $a = "a,b,a,c,d,a,g,G,h,A,,,,"
❯ $option = [System.StringSplitOptions]::RemoveEmptyEntries
❯ $a.Split(",", $option).ToUpper() | Select-Object -Unique
A
B
C
D
G
H
我不会遍历数组并删除数组中重复的任何 object/value。
我尝试使用此代码将字符串转换为数组
$a = "a,b,a,c,d,a,g,G,h,A,,,,"
$option = [System.StringSplitOptions]::RemoveEmptyEntries
$a= $a.Split(",", $option);
$a= $TextInfo.ToTitleCase($a.Trim())
然后我使用以下方法删除任何重复的值
$a = $a | Select-Object -Unique
它在某些列表中时好时坏,它对某些列表有效,但对某些列表无效。
想要一个没有重复值的数组
你可以这样做:
$a = "a,b,a,c,d,a,g,G,h,A,,,," -split ',' |
Where-Object { $_ -match '\S' } |
ForEach-Object {(Get-Culture).TextInfo.ToTitleCase($_.Trim())} |
Select-Object -Unique
$a
输出:
A B C D G H
在获取唯一值之前,您可以使用 ToUpper()
将拆分数组转换为大写:
❯ $a = "a,b,a,c,d,a,g,G,h,A,,,,"
❯ $option = [System.StringSplitOptions]::RemoveEmptyEntries
❯ $a.Split(",", $option).ToUpper() | Select-Object -Unique
A
B
C
D
G
H