【c#】構造体のListに対して特定の要素を削除する方法

構造体の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");
タイトルとURLをコピーしました