[英]C# Fastest way to search on a dictionary within a dictionary
我創建了一個文本管理器類,用於處理不同上下文(例如:常規上下文,菜單上下文,游戲上下文等)的文本。
每個上下文都是使用二進制文本文件創建的,數據存儲在字典中的字典中,如下所示:
private Dictionary<string, Dictionary<string, string>> m_TextContexs;
像這樣工作:
m_TextContexs[context][textID][actual text]
我希望用戶只能在這樣的函數中使用' textID
'字符串找到任何文本行:
public string GetText(string id)
編輯:textID是唯一的,因為相同的textID在多個上下文中將不存在。
因此,此函數應在所有現有上下文中找到字符串ID,並返回有效的實際文本。
這里的問題是,執行此操作的最快方法是什么。 我不是一個經驗豐富的程序員,所以我要做的是循環瀏覽所有上下文,如果提及文本ID存在,則在每個上下文中查找。
如果您想知道為什么我需要“上下文”來對文本進行分組,那么如果不再需要上下文,則可以從內存中卸載該數據。
提前謝謝了 :)
字典在O(1)時間內從鍵中檢索值,這實際上是即時的,因此,這個問題實際上取決於您的context
是哪種動物,以及textId
唯一textId
。
您如何知道“正確”的背景是哪個? 您能否根據應用程序中用戶的當前位置和路徑確定它? 如果是這樣,則可以將該值傳遞給查找函數。
否則,除非textId
在上下文中唯一,否則遍歷上下文將textId
。 例如,給定textId 123
,您如何知道要m_TextContexs[context1][123]
還是m_TextContexs[context2][123]
?
如果textId
在上下文中是唯一的(最好的情況),那么您可以簡單地從圖片中消除context
,並使用Dictionary<string, string>
並將textId
作為唯一鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.