낑깡의 게임 프로그래밍 도전기

Unity C# List 초기화 Clear와 RemoveAll 차이 본문

Unity C#

Unity C# List 초기화 Clear와 RemoveAll 차이

낑깡겜플밍 2024. 5. 20. 13:11
반응형

유니티에서 List 초기화는 Clear 메서드를 사용하여 수행합니다. Clear 메서드는 리스트의 모든 요소를 제거하여 빈 상태로 만듭니다. RemoveAll 메서드도 요소를 제거하는 데 사용될 수 있지만, 특정 조건을 만족하는 요소를 제거하는 데 사용됩니다.

List.Clear()

Clear 메서드는 리스트의 모든 요소를 제거하여 리스트를 빈 상태로 만듭니다. 이는 가장 일반적으로 리스트를 초기화하는 방법입니다.

List<int> myList = new List<int> { 1, 2, 3, 4, 5 };
myList.Clear(); // myList는 이제 빈 상태가 됩니다.

List.RemoveAll()

RemoveAll 메서드는 특정 조건(predicat)과 일치하는 모든 요소를 제거합니다. 따라서 리스트를 초기화하는 데 사용하기에는 적합하지 않습니다.

List<int> myList = new List<int> { 1, 2, 3, 4, 5 };
// 2보다 큰 모든 요소를 제거합니다.
myList.RemoveAll(x => x > 2); // myList에는 이제 { 1, 2 }만 남습니다.

비교

  • Clear: 리스트의 모든 요소를 제거하여 빈 리스트로 만들고자 할 때 사용합니다.
  • RemoveAll: 특정 조건에 맞는 요소를 제거할 때 사용합니다. 모든 요소를 제거할 수도 있지만, 불필요하게 조건을 사용해야 합니다.

따라서 리스트를 초기화하려면 Clear 메서드를 사용하는 것이 가장 적절합니다. RemoveAll 메서드를 사용하여 리스트를 초기화할 수도 있지만, 이는 비효율적이며 직관적이지 않습니다.

반응형

예시

using System.Collections.Generic;
using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

        // 리스트 초기화
        numbers.Clear();

        // 초기화된 리스트는 요소가 없습니다.
        Debug.Log("List count after Clear: " + numbers.Count); // 출력: List count after Clear: 0
    }
}

이 예제에서 numbers.Clear()를 호출하여 리스트를 초기화하고, 초기화된 후 리스트의 요소 개수를 확인할 수 있습니다.

반응형