Com o que você fez, $ listA não tem nenhum elemento chamado "Item_One", de modo que a expressão seja efetivamente NULL
É uma matriz, e se você deseja obter "A" de $ listA, você precisa usar $ listA [0] .Item_One e $ ListA [0] .Item_two
Sem saber mais sobre essa situação, não tenho certeza do que sugerir ...
Você realmente tem tantos itens que você precisa de um CSV?
Se não tentar uma tabela de hash -
PS C:\temp> $listA = import-csv .\list.csv
PS C:\temp> $listA
Item_One Item_Two
-------- --------
A 1
B 2
C 3
PS C:\temp> $listA.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\temp> $listA.Item_One
PS C:\temp> $listA[0].Item_One
A
PS C:\temp> switch ($Test)
>> {
>> $listA[0].Item_One {write-host $ListA[0].Item_two}
>> default {"Not found"}
>> }
>>
1
# Hash table example
$hash=@{"A"=1;"B"=2;"C"=3}
$hash.A
1
Novo após o comentário 7/9 de Nick:
Eu não acho que a estrutura case / switch seja adequada para este caso. Isso parece que vai fazer o que você precisa.
$listA | foreach {
if ($_.item_one -eq "A") {
# do something
write-host $_.item_two
} elseif ($_.item_one -eq "B") {
# do something different
write-host $_.item_two
} else {
$found = $false
}
}
if ($found -eq $false) {
write-host "default"
}
Dependendo de suas necessidades, a cláusula IF também pode ser iniciada assim
if ($_.item_one -match "A|B|C") {