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
Loading script...
codechachaCopyright ©2019 codechacha