我是否需要重新定義函數中的對象?PowerShell在函數中定義對象?
我有以下main.ps1
$MyDict = New-Object 'system.collections.generic.dictionary[string,string]'
loadDict([ref]$MyDict)
和我有功能
function loadDict([ref]$return)
{
#pseudo - load data from table
foreach ($TableRow in $LoadTable){
if($return.ContainsKey($TableRow.KEYID) -eq $false){
$return.Add($TableRow.KEYID, $TableRow.TEXT.Trim())
}
}
}
一個functions.psm1,但我得到以下錯誤..
[系統.Management.Automation.PSReference'1 [[System.Collections.Generic.Dictionary'2 [[System.String, mscorlib,Version = 4.0.0.0,Culture =中性, 公鑰= b77a5c561934e089],[System.String,mscorlib程序, 版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089]], mscorlib程序,版本= 4.0.0.0,文化=中性 公鑰= b77a5c561934e089] ]]「ContainsKey」找不到方法
當我不調用函數,但使用Main函數代碼時,沒有問題。
(校正的 「[」 錯字)
謝謝,我得到了「說文解字」的事情從一個朋友我告訴我這比bultin hashtable快很多。我有幾個幾百兆「厚」的表格。我會嘗試您的解決方案並提供反饋。 – cernoel
你能提供給我們一個'$ LoadTable'的例子嗎?您可以通過一次填充列表來加速腳本。 –
:/對不起,它包含內部ERP數據。他們舉行例如ShopItem描述和東西..我所做的是每天加載一次字典,並將它們保存在RAM中。因此,Dict Load需要大約10分鐘的SQL Server,這確實很快。但是我需要在它存儲在Dict中之前先轉換或連接一些數據。 – cernoel