簡體   English   中英

C#在詞典中搜索詞典的最快方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM