讓我們假設以下字典:
$Grid = [System.Collections.Generic.Dictionary[[System.String],[System.Boolean]]]::new()
For ( $i = 0; $i -lt 10; $i ) {
For ( $j = 0; $j -lt 10; $j ) {
$Grid.Add("$i,$j", $false)
}
}
這使 10x10 的“網格”具有某種坐標:
0,0 = False
0,1 = False
0,2 = False
等等。
我能夠將它們的范圍設定為特定值:
$Grid['0,0', '0,1', '0,2'] = $true
但我無法讓它作業來切換實際值。
我試圖完成的是
$Grid['0,0', '0,1', '0,2'] = -Not $_.Value
任何幫助表示高度贊賞!- 提前致謝!
編輯:
你是不是能值賦給一個范圍在我寫的方式指數。有關更多詳細資訊,請查看mklement0 的這個答案。
uj5u.com熱心網友回復:
您必須單獨訪問條目:
'0,0', '0,1', '0,2' | ForEach-Object { $Grid[$_] = -not $Grid[$_] }
原因是:
- 使用多個索引/鍵使用指數表示法(如
['0,0', '0,1', '0,2'])僅適用于獲得元素/值,而不是也為設定。[1]
(即使有效,您也無法參考目標元素/條目的現有值,因此會限制您為所有目標分配相同的固定值)
[1] 從 PowerShell 7.2 開始,雖然回應嘗試此類賦值的錯誤訊息對于陣列是明確的(assignment to slices is not supported.撇開術語切片在 PowerShell 中并未真正使用),但它對于字典(包括哈希表)來說令人困惑:Unable to index into an object of type <dictionary-type>。類似地,嘗試通過成員列舉分配給集合元素的屬性- 這也不支持 - 會導致令人困惑的錯誤訊息 - 請參閱GitHub 問題 #5271。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/373922.html
上一篇:將遺漏的數字添加為字典的鍵
