読者です 読者をやめる 読者になる 読者になる

【C#】list内の要素を除去するRemoveとRemoveAll

何となく使っていたListに標準で備わっているRemoveメソッドだけど、自分の中では全該当要素を削除してくれているものだとばかり思っていた。
当然そんなことはないわけで、色々と動作に支障が出たのでメモ。

List<int> nums = new List <int> ();
nums.Add(1);
nums.Add(1);
nums.Add(2);
nums.Remove(1);
//nums内は=>2ではなく=>1 2

というわけでRemoveAllを使う。

List<int> nums = new List <int> ();
nums.Add(1);
nums.Add(1);
nums.Add(2);
nums.RemoveAll(num => num == 1);
//nums内は=>2

RemoveAllの引数はラムダ式というらしいけど、勉強不足の私では理解不能な引数。
これのせいで少し躓いた。

いつも思うけど、MSDNのドキュメントって凄く読みづらい気がする。
慣れてないせいかなあ。

参考
C# RemoveAll List Method
リスト(List)の列挙中にリスト要素を削除するには?[C#、VB] − @IT
List(T).RemoveAll メソッド (System.Collections.Generic)