Powershell 풀림이 나를 미치게합니다.ArrayList Unrolling
나는 교환 수령인에게서 이메일 주소를 회수하기 위하여 뒤에 오는 부호가있다. 배열에서 항목을 제거 할 때 많은 사람들이 제안하기 때문에 ArrayList를 사용하고 있습니다.
$aliases = New-Object System.Collections.ArrayList
$smtpAddresses = (Get-Recipient $this.DN).EmailAddresses | ?{$_.Prefix.ToString() -eq 'smtp' }
foreach ($smtpAddress in $smtpAddresses) {
$aliases.Add($smtpAddress.SmtpAddress)
}
return $aliases
별명 함수의 끝에 올 $의 값 (즉, X 이메일 주소를 포함하고 타입의 ArrayList 임)하지만 복귀 후에는은 System.Object []지고 배 항목이있다. 거기에 x 문자열 (즉, {0, 1, bob @ here, bob @ there})이 뒤에옵니다. 왜 이런 일이 일어나고 ArrayList를 그대로 유지할 수 있습니까? ArrayList 사용에 잘못 되었습니까?
PS에서 풀린 결과로 발생하는 모든 질문/문제점이있는 호기심에서 벗어나서 그 목적은 무엇입니까? PowerShell의 가장 큰 장점은 내가 예상하고있는 개체의 종류가 무엇인지 알지 못한다는 것입니다. 불행히도 문자 투영 대신 개체로 직접 작업한다는 것입니다. 내가 확인해도 더 많은 것을 위해 모양을 유지하지 못하는 것 같습니다. 몇 줄의 코드보다
- 당신은 어떻게 $aliases
를 반환하는 편집 이 기능은 PSObject
$get_aliases = { ... }
$obj | Add-Member -MemberType ScriptProperty -Name Aliases -Value $get_aliases -SecondValue $set_aliases
@bob 다행입니다. 귀하의 탐험과 함께 계속! 마음을 * 파이프 라인 모드로 작동시키는 데 약간의 시간이 걸립니다. 그런 일이 발생하면 PowerShell이 무엇을하고 있는지 알아보기 시작할 것입니다. –