構造体のListを使っており特定の要素を削除したい方向けに、
条件に合致する構造体のList要素を削除する方法を紹介します。
以下サンプルです。
次のような構造が宣言されているものとします。
public struct TestValue
{
public string mem1;
public string mem2;
public string mem3;
}
次のように記述すると、メンバー変数mem3の値が”a”の要素を削除することができます。
RemoveAllメソッドを使用します。
//構造体のListを初期化
List<TestValue> Test = new List <TestValue> {
new TestValue {mem1="1",mem2="A",mem3="a"},
new TestValue {mem1="2",mem2="B",mem3="b"},
new TestValue {mem1="3",mem2="C",mem3="c"},
new TestValue {mem1="4",mem2="D",mem3="a"},
new TestValue {mem1="5",mem2="E",mem3="b"},
};
//RemoveAllメソッドを実行
Test.RemoveAll(where => where.mem3 == "a");
(補足)
RemoveAllメソッドで指定する引数の”where”は任意の値でOKです。
例えば、下記のような記述でも同じように動作します。
Test.RemoveAll(s => s.mem3 == "a");