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