하랑이 코딩

컴퓨터공학/자료구조

선형 자료구조 - 리스트(List<T>) c#

하랑이~! 2024. 6. 2. 20:30

리스트란?


C#의 리스트(List)는 System.Collections.Generic 네임스페이스의 List<T> 클래스를 사용하여 다양한 타입의 데이터를 순차적으로 저장하고 관리할 수 있는 유연한 제네릭 컬렉션입니다.

 

꼭 알아야 하는 지식!

 

리스트

  • ArrayList - 내부적으로 배열을 사용
  • LinkedList - 링크 포인터를 사용
  • List<T> - 제너릭 타입

 

배열의 특징

  • 생성 시 사용할 공간을 미리 할당한다.
  • 인덱스를 사용 데이터 접근에 빠르다.
  • 데이터의 크기를 변경하지 못한다.

 

리스트특징

  • 데이터의 추가 삭제가 자유롭다.
  • 생성 시 크기를 지정하지 않는다.
  • 리스트를 다른 말로 Dynamic Array라고 부른다.

 

박싱(Boxing)

  • 값 형식을 참조 형식으로 변환하는 것

언박싱(Unboxing)

  • 참조  형식을 형식으로 변환하는 것

 

List<T> 사용법


List<T> - 제너릭 타입 : 저장할 데이터 타입을 T에 인자값으로 넘긴다

 

list.Add 사용법

using System;
using System.Collections;
using System.Collections.Generic;

namespace MyCompiler
{
    class Program
    {
        public static void Main(string[] args)
        {
            List<string> movie_list = new List<string>();

            movie_list.Add("너의 이름은");
            movie_list.Add("범죄도시");
            movie_list.Add("명탐정 코난 VS 괴도 키드");

            Console.WriteLine("20xx년 5월달 영화");
            for (int i = 0;  i < movie_list.Count; i++)
            {
                Console.WriteLine(movie_list[i]);
            }
        }
    }
}

 

List<T> 응용

using System;
using System.Collections;
using System.Collections.Generic;

namespace MyCompiler
{
    class Program
    {
        public static void Main(string[] args)
        {
            List<string> movie_list = new List<string>();

            movie_list.Add("너의 이름은");
            movie_list.Add("범죄도시");
            movie_list.Add("명탐정 코난 VS 괴도 키드");

            Console.WriteLine("20xx년 5월달 영화");
            for (int i = 0;  i < movie_list.Count; i++)
            {
                Console.WriteLine(movie_list[i]);
            }

            movie_list.Insert(0, "도라에몽");
            movie_list.Insert(1, "짱구");
            movie_list.Insert(2, "범죄도시4");

            movie_list.Remove("너의 이름은");
            movie_list.Remove("범죄도시");
            movie_list.Remove("명탐정 코난 VS 괴도 키드");

            Console.WriteLine("=======================");
            Console.WriteLine("20xx년 6월달 영화");
            for (int i = 0; i < movie_list.Count; i++)
            {
                Console.WriteLine(movie_list[i]);
            }
        }
    }
}
728x90