我有一本充滿列表的字典。在我向字典添加新鍵之前,我檢查它是否已經(jīng)在字典中。如果是這樣,我將該對象添加到列表中。如果不是,我創(chuàng)建一個新對象并使用鍵將其添加到字典中。問題是 Dictionary.ContainsKey() 函數(shù)有時會拋出 KeyNotFound 異常,這對我來說毫無意義。我試過使用 Dictionary.TryGetValue() 函數(shù),它有同樣的問題。我還確保密鑰不為空。string key = time.ToString();Console.WriteLine(key);if (!synthSong.Track[difficulty].ContainsKey(key)){ List<SynthNote> notes = new List<SynthNote>(); notes.Add(note); synthSong.Track[difficulty].Add(key, notes);}else{ synthSong.Track[difficulty][key].Add(note);}奇怪的是,異常只發(fā)生在某些數(shù)據(jù)集上。
1 回答
楊__羊羊
TA貢獻1943條經(jīng)驗 獲得超7個贊
該程序?qū)⒏枨募囊环N節(jié)奏游戲轉(zhuǎn)換為另一種節(jié)奏游戲。為此,我從一個 json 文件中讀取數(shù)據(jù)并將其導出到另一個 json 文件。為此,我有一個類,每個類都包含所有相關(guān)信息,例如 json(反)序列化程序使用的難度。當我正在更新程序以支持更多困難時發(fā)生錯誤。我已經(jīng)在導入端和將信息映射到導出類而不是導出類本身的代碼中更改了困難。所以我寫的難度鍵在導出類(名為 synthSong)中不存在。我錯誤地認為錯誤是由檢查沒有意義的關(guān)鍵變量引起的。我想這就是為什么“key”不是要用作鍵的變量的最佳名稱的原因。
- 1 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報
0/150
提交
取消
