C# - リスト要素を削除する(RemoveAt、RemoveAt、RemoveAll)

リストから要素を削除するときに使用できる方法を紹介します。

1. RemoveAt() : Indexで要素を削除

RemoveAt(index) は index に対応する要素を削除します。

これを利用して、リストの最初の要素、最後の要素を削除できます。

  • RemoveAt(0) : リストの最初の要素を削除
  • RemoveAt(list.Count - 1) : リストの最後の要素を削除

次のように、Indexを使用してリストから要素を削除できます。

using System;

namespace Example {

    public class Program {

        public static void Main(string[] args) {

            List<string> list = new List<string>() {"a", "b", "c", "d", "e", "f"};

            list.RemoveAt(0);
            Console.WriteLine(string.Join(", ", list));

            list.RemoveAt(list.Count - 1);
            Console.WriteLine(string.Join(", ", list));
        }
    }
}

Output:

b, c, d, e, f
b, c, d, e

2. Remove() : オブジェクト(value)で要素を削除

Remove(item) は、リストの要素の中に引数として渡された item と同じオブジェクトがあるときに削除します。要素が削除された場合はtrueが返されます。

以下のように Remove() で特定のオブジェクトをリストから削除できます。

using System;

namespace Example {

    public class Program {

        public static void Main(string[] args) {

            List<string> list = new List<string>() {"a", "b", "c", "d", "e", "f"};

            list.Remove("b");
            Console.WriteLine(string.Join(", ", list));

            list.Remove("d");
            Console.WriteLine(string.Join(", ", list));
        }
    }
}

Output:

a, c, d, e, f
a, c, e, f

3. RemoveAll() : 条件に合ったすべての要素を削除

RemoveAll(match) はリストの要素の中から match 条件に合った要素を削除します。

たとえば、数字を持つリストから 4 未満の数字をすべて削除したい場合、 RemoveAll(i => i < 4) のように削除できます。

using System;

namespace Example {

    public class Program {

        public static void Main(string[] args) {

            List<int> list = new List<int>() {1, 2, 3, 4, 5, 6};

            list.RemoveAll(i => i < 4);
            Console.WriteLine(string.Join(", ", list));
        }
    }
}

Output:

4, 5, 6
codechachaCopyright ©2019 codechacha