从数组中删除重复值并将 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