プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2017/08/11

Dictionary の Value 値によって要素を削除する方法

event_note2017/08/11 2:50

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);

参考 URL