コード検査: 辞書項目の削除は 1 回の「削除」で簡素化できます
C# の Dictionary<T, T>
の Remove
メソッドは、キーが見つからない場合でも例外をスローせず、単に false
を返します。これは、キーを削除する前に、TryGetValue
を使用してキーが辞書に存在するかどうかを確認する必要がないことを意味します。
int RemoveValue(Dictionary<int, int> d, int toRemove)
{
if (d.TryGetValue(toRemove, out var result))
{
d.Remove(toRemove);
return result;
}
return -1;
}
int RemoveValue(Dictionary<int, int> d, int toRemove)
{
if (d.Remove(toRemove, out var result))
{
return result;
}
return -1;
}
関連ページ:

コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

コード検査: 「追加」の前に「含む」を簡略化できます
C# ののメソッドは、セットに重複を追加しないように設計されています。要素がすでにセット内にある場合、メソッドはを返すだけで、例外はスローされません。この場合、の前にを呼び出すのは冗長です。void AddNumber(HashSet<int> hashSet, int number) { if (hashSet.Contains(number) == false) { hashSet.Add(number); } }void AddNumber(HashSet<int>...