所有鍵我有這樣的:獲取包含字典值x
Dictionary<integer, string> dict = new Dictionary<integer, string>();
我想選擇中包含值abc
字典中的所有項目。
有沒有內置功能讓我輕鬆做到這一點?
所有鍵我有這樣的:獲取包含字典值x
Dictionary<integer, string> dict = new Dictionary<integer, string>();
我想選擇中包含值abc
字典中的所有項目。
有沒有內置功能讓我輕鬆做到這一點?
那麼它的合理簡單使用LINQ:
var matches = dict.Where(pair => pair.Value == "abc")
.Select(pair => pair.Key);
請注意,這不會是稍微高效 - 這是一個O(N)
操作,因爲它需要檢查每一個條目。
如果您需要頻繁地執行此操作,您可能需要考慮使用另一種數據結構 - Dictionary<,>
是專門爲快速查找而設計的,其密鑰爲。
內置功能?沒有對不起......但另一種(不是很漂亮)的方式是迭代使用foreach(KeyValuePair<integer, string> ...
如果您想要獲得包含「abc」值的密鑰,您可以: var matches = dict。 Where(pair => pair.Value.Contains(「abc」)) .Select(pair => pair.Key); – jmrnet
@用戶:'詞典<,>'只是'Dictionary'的簡寫。你的字典有多大?您需要搜索多少個值?每秒一次的次數不是很多,如果它是一個相當小的字典,並且只尋找單個值... –
字典的容量是10個鍵和4個值(「左」,「右」,「前」 ,「背部」)。有時這個函數每秒運行10次左右。 – Elmo