無数の < string, double > ペアを生成し、文字列キーがまだ使用されていない場合は、それぞれを .NET ディクショナリに格納しています。
効率的には、これを行う方が良いですか?
try { Dict.Add(key, val); } catch (ArgumentException) {} //blind attempt
またはこれ?
if (!Dict.ContainsKey(key)) { Dict.Add(key, val); } //smart attempt
盲目的な試みは、複製キーで例外を引き起こします。賢明な試みでは、Dictionary インデックスを 2 回タップします。1 回目はチェックし、2 回目は追加します。(私の特定のケースでは、約 10% の確率でキーが重複しています。)
ある方法を他の方法よりも優先する必要があるかどうかを誰かが知っていますか?