C#은 처음이라
C# 리스트(List)
amckdgjs
2024. 3. 13. 16:58
리스트(List)는 동적배열 기반 자료구조이다. 앞선 스택과 큐와는 다르게 중간에 데이터를 삽입,삭제 할 수 있다.
배열과 비슷하지만 리스트가 자료의 입출력이 더 자유롭고 크기를 미리 정하지 않아도 되기 때문에 편리하다.
리스트 생성 및 초기화
List<string> list = new List<string>();
삽입과 삭제
List<string> list = new List<string>();
list.Add("0번 데이터");//배열 안에 값 삽입
list.Add("1번 데이터");
list.Add("2번 데이터");
list.Add("3번 데이터");
list.Add("4번 데이터");
foreach(var item in list)
{
Console.Write(item+" -> ");
}
list.Insert(1,"중간 데이터 1번");
list.Insert(3,"중간 데이터 2번");//선언한 배열 안에 값을 insert.3번째 배열에 삽입
list.Insert(5,"중간 데이터 3번");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
list.Remove("1번 데이터")
list.RemoveAt(1);
list.Add : Add를 통해 값을 삽입한다.
list.Insert : 선언한 배열 안에 값을 3번째 배열에 삽입한다.
list.Remove : 같은 문자열인 "1번 데이터"를 삭제한다.
list.RemoveAt(1) : 1번 배열의 값을 삭제한다.
반복기(Iterator)
반복기는 자료구조에 저장되어 있는 요소들에 순차적으로 접근한다. 배열과 리스트 같은 컬렉션을 단계별로 끊어서 코드를 실행할 수 있도록 한다."yield"를 사용하여 반복기를 생성할 수 있다.
반복기 선언 예시 :
void Test()
{
List<int> list = new List<int>() {0,1,2,3,4,5};
//반복기 객체 생성
IEnumerator<int> iter = list.GetEnumerator();
//반복기 객체가 현재 가리키는 데이터
Console.WriteLine($"{iter.Current}");
while (iter.MoveNext())
{
Console.WriteLine(iter.Current);
}
}
반복기는 데이터 시퀀스를 만들고 처리하는 데 유용하다. 대용량 데이터 처리 시 메모리 사용량을 최소화할 때 반복기를 사용할 수 있다.
반복기 함수 예시
using System;
using System.Collections.Generic;
class Program
{
static IEnumerable<int> GenerateNumbers()
{
for (int i = 1; i <= 10; i++)
{
yield return i;
}
}
static void Main(string[] args)
{
foreach (int num in GenerateNumbers())
{
Console.WriteLine(num);
}
}
}