2013-01-03 26 views
0

我有結構等搜索關於詞典的數組布爾值

Private wells() As Dictionary 

我需要知道,如果它存在於每個字典鍵「活性」被至少一次設置爲true。

有什麼辦法可以將它歸檔而不需要循環?像

dim hasActive as boolean 
hasActive = wells()["active"] = true 

現在我的循環,但應用程序是15年前寫的,還有更多的記錄,並加入到他們每個人更多的字典鍵,所以循環開始採取更多的時間比它明智的等待。

感謝

回答

0

簡短的回答:第

聽起來真是你應該考慮在這一點上另一個數據結構,甚至數據庫。 Simple等簡單的單鍵/值對技術有其侷限性。 「字典數組」剛開始時感覺很奇怪。

一個製造ADO記錄集,使一個方便的「超集」對象,可以有多個值/列,你可以要求通過「優化」動態屬性作爲鍵頻繁使用索引字段。

+0

聽起來很公平,我發現從數據庫中獲取額外的字典會比較容易,它只包含不同的結果,並且可以使用它。但如果我可以從頭開始設計,我會去斷開連接或捏造記錄集而不是字典陣列。謝謝 –

0

你不能直接這樣做,但你可以很容易地編寫一個類模塊,包裝你的字典的陣列,並提供方法,讓你操作的項目。然後,包含類可以跟蹤其中項目「活動」爲真的字典計數。這些方法會在「活動」項目設置爲True時增加計數,並在活動項目設置爲False時減少計數。然後,您可以檢查計數以確定是否有任何詞典中的「活動」項目設置爲True。

在Class_Initialize中實例化數組和字典,並將計數設置爲零。提供添加和刪除項目的方法(以及任何其他您可能需要的方法)以及一個屬性,以告訴您是否有任何字典的「活動」項目設置爲True。

當然,這並不意味着你必須改變所有的代碼在項目中使用你的類,而不是直接訪問數組和字典。不過,我認爲這應該不是那麼困難。