Dictionary の Value の値によって要素を削除したりしたい場合、どんなコードを書けばよいのかについてです。
方法1 削除するペアのリストを作成してそれをもとに Dictionary の要素を削除
参考 URL のサイトで挙げられていた方法が以下です。
var removeTargetList = dic.Where(x => x.Value == value).ToList();
foreach(var item in removeTargetList)
{
dic.Remove(item.Key);
}
方法2 削除しないペアだけの Dictionary を新たに作成する
会社の後輩が以下のようなコードを書いていました。
本人はクソなコードで恥ずかしいから他の書き方があれば変えたいと言って上記のコードに直してましたが、これはこれでなるほどと思いました。
dic = dic.Where(x => x.Value != value).ToDictionary(x => x.Key, x => x.Value);