특정 값을 가진 해시 테이블 키를 얻는 방법은?
값에 따라 키가 사용되고 있는 해시 테이블을 가지고 있습니다.
전남편은.
$ComponentTobeBuild=@{"ComponentNameX"="True";
"ComponentNameXyz"="False";
"SomeComponent"="False"}
값이 True인 키를 받고 싶습니다. (키를 다른 스크립트에 파라미터로 전달하겠습니다.)
그렇게 하려고 했는데, 키가 안 나와 있어서 어디가 그리운 것 같아요.
$($ComponentToBuild.Keys) | Where-Object { $_.Value -eq "True" }
True로 표시된 구성 요소 이름을 가져오는 방법은 무엇입니까?또한 해시 테이블이 이러한 작업에 현명한 선택인지 알고 싶습니다.해시 테이블은 값 처리에 주로 사용될 것으로 생각했기 때문입니다.
$ComponentTobeBuild.GetEnumerator() | ? { $_.Value -eq "True" }
안녕하세요. 원하는 것에 효과가 있을 겁니다.
$ComponentTobeBuild=@{"ComponentNameX"="Test";
"ComponentNameXyz"="False";
"SomeComponent"="False"}
Foreach ($Key in ($ComponentTobeBuild.GetEnumerator() | Where-Object {$_.Value -eq "Test"}))
{$Key.name}
이것이 오래된 것은 알지만, 다른 문제를 찾다가 이것을 보고 왜 당신이 Enumerators를 괴롭히는지 궁금했습니다.문제와 같은 코드를 실제 언어로 정확하게 작성하기만 하면 됩니다.
모든 키를 주세요. 여기서 값은 'True'입니다.
$ComponentTobeBuild.Keys | ? { $ComponentTobeBuild[$_] -eq 'True' }
일관성을 위해 나는 그것을 요약할 것입니다.@()
결과가 하나 또는 하나도 없는 경우에도 배열을 가져옵니다.
질문자가 가졌던 해결책에 관해 말하자면, 문제는$_
는 String이고,.Value
는 키의 값이 아닙니다.문자열에는 존재하지 않습니다.해시 테이블의 값을 다음과 같이 구해야 합니다.$_
비교하기 위해 Key로 표시합니다.
PowerShell에서 해시 테이블을 필터링할 때 발생하는 문제는 Key-Value 쌍을 반복할 수 없다는 것입니다.
소장품이 있다고 가정해 보겠습니다.
$collection = @{
a = 'A';
b = 'B';
c = 'C';
d = 'D';
e = 'E';
...
}
사용할 수 있기를 기대할 수 있습니다.
$results = $collection | Where-Object { $_.Key -in ('a', 'b', 'd') }
파워쉘에서는 그럴 수 없습니다.
따라서 다시 열거자를 사용해야 합니다.
$results = $collection.GetEnumerator() | Where-Object { $_.Key -in ('a', 'b', 'd') }
$results
Name Value
---- -----
d D
b B
a A
당신은 또한 사용할 수 있습니다.Dictionary.Keys
'Where
조건이 참일 때 모든 요소를 반환하는 메서드입니다.이 조건은 람다가 테스트된 키를 주장하는 것일 수 있습니다.$_
에 관련된."True"
사전의 값입니다.
$ComponentTobeBuild=@{"ComponentNameX"="True";
"ComponentNameXyz"="False";
"SomeComponent"="False"}
$ComponentTobeBuild.Keys.Where({$ComponentTobeBuild[$_] -eq "True"})
# -> @("ComponentNameX")
가장 간단한(그리고 가장 깔끔한) 방법은 다음과 같습니다.
$ComponentToBuild.where{$_.Keys -match 'True'}
그럼 필요한 부분만 가져와요
$ComponentToBuild.where{$_.Keys -match 'True'} | select Field1,Field2,Field99
기타
언급URL : https://stackoverflow.com/questions/11357654/how-to-get-hash-table-key-which-has-specific-value
'programing' 카테고리의 다른 글
운영 환경에서 Sql Server와 Django 사용 (0) | 2023.10.22 |
---|---|
WordPress의 재작성 규칙에 대한 설명 (0) | 2023.10.22 |
C - R 프로그래머의 경우 - 기본을 초과한 경우 권장 리소스/접근 방법 (0) | 2023.10.22 |
AngularJS - ng-show in ng-repeat 사용 (0) | 2023.10.22 |
jQuery - 기본값을 방지한 다음 기본값을 계속합니다. (0) | 2023.10.22 |