반응형
PowerShell을 사용하여 선언 시 사전 초기화
해당 파워셸 코드:
$drivers = New-Object 'System.Collections.Generic.Dictionary[String,String]'
$drivers.Add("nitrous","vx")
$drivers.Add("directx","vd")
$drivers.Add("openGL","vo")
Add 메서드를 호출하지 않고 이 사전을 직접 초기화할 수 있습니까?맘에 들다.NET에서 할 수 있습니까?
이런 거?
$foo = New-Object 'System.Collections.Generic.Dictionary[String,String]'{{"a","Alley"},{"b" "bat"}}
[이것이 어떤 유형의 구문을 포함할지 확실하지 않음]
아니요. 초기화 구문은Dictionary<TKey,TValue>
C# 구문 캔디입니다.Powershell은 자체 이니셜라이저 구문을 지원합니다.System.Collections.HashTable
(@{}
):
$drivers = @{"nitrous"="vx"; "directx"="vd"; "openGL"="vo"};
거의 모든 경우에 마찬가지로 잘 작동할 것입니다.Dictionary<TKey,TValue>
정말 필요하다면,Dictionary<TKey,TValue>
어떤 이유로, 당신은 다음과 같은 기능을 만들 수 있습니다.HashTable
키와 값을 반복하여 새 키에 추가합니다.Dictionary<TKey,TValue>
.
어쨌든 C# 이니셜라이저 구문은 정확하게 "직접"은 아닙니다.컴파일러가 다음 호출을 생성합니다.Add()
그것으로부터.
$d = [System.Collections.Generic.Dictionary[String,Object]]::new()
#works now.
$d.Add('keyvalue', @{x=1; y='abc'})
#Evaluate dictionary
$d
<# outputs
Key Value
--- -----
keyvalue {y, x}
#>
#evalueate contains key:
$d.Keys.Contains('keyvalue')
<# outputs
True
#>
# Evaluate the value using the key
$d['keyvalue']
<# outputs
Name Value
---- -----
y abc
x 1
#>
#Evaluate the y property of the object
$d['keyvalue'].y
<# outputs
abc
#>
# Evaluate the x property of the object
$d['keyvalue'].x
<# outputs
1
#>
언급URL : https://stackoverflow.com/questions/6765375/initialize-dictionary-at-declaration-using-powershell
반응형
'programing' 카테고리의 다른 글
Python 프로젝트용 도커 이미지를 빌드할 때 패키지 재설치를 피하는 방법은 무엇입니까? (0) | 2023.08.01 |
---|---|
세 개의 인용구?ASP에서 데이터베이스 바인딩 Javascript 문자열 매개 변수를 어떻게 구분합니까?NET? (0) | 2023.08.01 |
인식할 수 없는 구성 섹션 log4net (0) | 2023.08.01 |
유형 오류: 유형 스크립트에서 개체 '[objectArray]'의 읽기 전용 속성 '0'을(를) 할당할 수 없습니다. (0) | 2023.07.27 |
Flask Python, 목록을 반환하거나 Ajax 호출에 받아쓰려고 합니다. (0) | 2023.07.27 |