Programing/C#

C# 프로그래밍의 기초 : List

유니얼 2024. 3. 3. 00:57
728x90

C#의 List<T>는 동적으로 크기가 조절되는 배열을 제공하는 강력한 데이터 구조입니다. System.Collections.Generic 네임스페이스 내에 위치하며, 제네릭을 통해 다양한 타입의 데이터를 유연하게 처리할 수 있습니다. 배열과 달리 크기가 고정되어 있지 않아, 요소의 추가 및 제거가 자유롭고, 이에 따라 자동으로 크기가 조절됩니다.

List의 주요 특징

  • 동적 크기 조정: 요소의 추가 및 제거에 따라 내부 배열의 크기가 자동으로 조절됩니다.
  • 제네릭 지원: 다양한 타입의 데이터를 안전하게 저장할 수 있습니다.
  • 인덱스 접근: 배열처럼 인덱스를 통해 각 요소에 접근할 수 있습니다.
  • 메서드 지원: 요소의 추가, 삭제, 검색, 정렬 등 다양한 메서드를 제공합니다.

주요 메서드 및 속성

  • Add(T item): 리스트의 끝에 새 요소를 추가합니다.
  • Remove(T item): 리스트에서 첫 번째로 일치하는 요소를 제거합니다.
  • RemoveAt(int index): 지정된 인덱스에 있는 요소를 제거합니다.
  • Insert(int index, T item): 지정된 인덱스에 요소를 삽입합니다.
  • Clear(): 리스트의 모든 요소를 제거합니다.
  • Count: 리스트에 있는 요소의 수를 반환합니다.
  • Contains(T item): 리스트에 특정 요소가 포함되어 있는지 확인합니다.
  • Sort(): 리스트의 요소를 정렬합니다.

List 사용 예제

using System;

class Program
{
    static void Main(string[] args)
    {
        // 문자열 리스트 생성
        List<string> fruits = new List<string>();

        // 요소 추가
        fruits.Add("Apple");
        fruits.Add("Banana");
        fruits.Add("Cherry");

        // 인덱스를 통한 요소 접근
        Console.WriteLine($"Second fruit: {fruits[1]}"); // 출력: Banana

        // 리스트의 요소 순회
        Console.WriteLine("Listing all fruits:");
        foreach (string fruit in fruits)
        {
            Console.WriteLine(fruit);
        }

        // 요소 제거
        fruits.Remove("Banana"); // "Banana" 요소 제거
        Console.WriteLine("After removing 'Banana':");
        foreach (string fruit in fruits)
        {
            Console.WriteLine(fruit);
        }

        // 요소 삽입
        fruits.Insert(1, "Mango"); // 인덱스 1에 "Mango" 삽입
        Console.WriteLine("After inserting 'Mango':");
        foreach (string fruit in fruits)
        {
            Console.WriteLine(fruit);
        }

        // 리스트 크기 확인
        Console.WriteLine($"Number of fruits: {fruits.Count}"); // 출력: 현재 리스트의 요소 수

        // 리스트의 특정 요소 포함 여부 확인
        Console.WriteLine($"Contains 'Apple': {fruits.Contains("Apple")}"); // "Apple"이 리스트에 있는지 확인

        // 리스트 정렬
        fruits.Sort();
        Console.WriteLine("Fruits after sorting:");
        foreach (string fruit in fruits)
        {
            Console.WriteLine(fruit);
        }

        // 리스트의 모든 요소 제거
        fruits.Clear();
        Console.WriteLine($"Number of fruits after clearing: {fruits.Count}"); // 출력: 0
    }
}

위 예제는 List<string>을 사용하여 문자열 리스트를 생성하고 관리하는 방법을 보여줍니다. 요소의 추가, 접근, 순회, 제거 등의 작업을 간단하게 수행할 수 있습니다.

결론

List<T>는 C#에서 데이터 컬렉션을 관리하는 데 있어 필수적인 도구입니다. 동적 배열의 특성을 가지고 있으며, 다양한 타입의 데이터를 유연하게 처리할 수 있는 강력한 메서드를 제공합니다. List<T>의 이해와 적절한 사용은 데이터 관리의 효율성을 높이고, 프로그램의 유연성을 향상시키는 데 크게 기여합니다.

반응형