原文連結:https://learn.microsoft.com/zh-cn/dotnet/fundamentals/code-analysis/quality-rules/ca1864
Dictionary<TKey,TValue>.ContainsKey(TKey) 和 Dictionary<TKey,TValue>.Add 都執行查詢操作,這是冗餘設定。
如果字典中已存在鍵,Dictionary<TKey,TValue>.Add 也會引發異常。 呼叫 Dictionary<TKey,TValue>.TryAdd 更高效,這會返回一個布林值,指示是否已新增該值。 如果鍵已存在,則 TryAdd
不會覆蓋該鍵的值。
TryAdd方法是Dictionary類的一個方法,它是IDictionary介面的一個實現。
TryAdd方法嘗試將鍵值對新增到字典中。如果字典中已經存在指定的鍵,則該鍵值對不會被新增,並且此方法返回false。如果字典中不存在該鍵,則新增該鍵值對,並返回true。
以下是使用TryAdd方法的示例程式碼:
Dictionary<string, int> dictionary = new Dictionary<string, int>(); // 嘗試新增一個新的鍵值對 if (dictionary.TryAdd("key1", 10)) { Console.WriteLine("新增成功"); } else { Console.WriteLine("新增失敗,鍵已存在"); } // 再次嘗試新增相同的鍵 if (dictionary.TryAdd("key1", 20)) { Console.WriteLine("新增成功"); } else { Console.WriteLine("新增失敗,鍵已存在"); } // 嘗試新增另一個新的鍵值對 if (dictionary.TryAdd("key2", 30)) { Console.WriteLine("新增成功"); } else { Console.WriteLine("新增失敗,鍵已存在"); }