0
有什麼辦法來不是每次檢查鍵是否已經存在?字典/ Hashset構建優化
假設
- 我們不知道所有可能的密鑰之前,我們通過列表
迭代的新途徑應該提高工作效率
var list = new List<Person>(); // { int Id; int DepartmentId; string Name; } ... // let's imagine that list is getting filled var dict = new Dictionary<int, List<Person>>(); foreach (var p in list) { if(!dict.ContainsKey(p.DepartmentId)) dict.Add(p.DepartmentId, new List<int>()); dict[p.DepartmentId].Add(p); }
我會調用擴展'GetOrAdd',以符合'ConcurrentDictionary'的版本。您也可以考慮遵循其示例,並讓它接受創建該值的委託,但不存在的情況。 – Servy
@Servy很好的建議。在我的代碼中,我有一個默認值的第三個參數。然而,我決定放棄這個答案,以使結果代碼更加簡潔。 – BartoszKP