안녕하십니까 오늘은 C#의 Collection 자료구조들에 대해 설명해보도록 하겠습니다. 여러가지 자료구조가 있는데요, 오늘은 List, Dictionary ,Queue, Stack 까지 아주 중요한 컬렉션들을 총 집합해서 알아보도록 하겠습니다.
C# Collection이란 ?
C#에서 컬렉션은 데이터를 효율적으로 저장하고 관리하는 데 필수적인 요소입니다. 컬렉션은 다양한 형태와 용도로 제공되며, 이를 이해하고 적절히 사용하는 것은 C# 프로그래밍에서 매우 중요합니다.
List: 동적 배열의 활용
List
는 가장 자주 사용되는 컬렉션 중 하나입니다. 이는 크기가 동적으로 변하는 배열로, 요소의 추가 및 제거가 자주 일어나는 경우에 유용합니다. List
는 제네릭을 사용하여 어떤 타입의 요소도 저장할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; numbers.Add(6); numbers.Remove(2); foreach (int number in numbers) { Console.WriteLine(number); } } } |
정수를 저장하는 List
를 생성하고, 요소를 추가하거나 제거한 후에 출력합니다.
Dictionary 키-값 효율적 관리
Dictionary
는 키와 값의 쌍으로 데이터를 저장하는 컬렉션입니다. 이는 데이터에 빠르게 접근할 수 있도록 해주며, 특히 키를 사용하여 값을 검색할 때 유용합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<string, string> capitals = new Dictionary<string, string> { ["Korea"] = "Seoul", ["Japan"] = "Tokyo", ["France"] = "Paris" }; Console.WriteLine(capitals["Korea"]); } } |
국가 이름을 키로, 수도 이름을 값으로 저장하는 Dictionary
를 생성하고, 키를 사용하여 값을 검색합니다.
Queue와 Stack 선입선출과 후입선출 구조
Queue
는 선입선출(FIFO) 구조를 가진 컬렉션이며, Stack
는 후입선출(LIFO) 구조를 가집니다. 이들은 특정 유형의 데이터 처리에 적합합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | using System; using System.Collections.Generic; class Program { static void Main() { Queue<string> queue = new Queue<string>(); queue.Enqueue("첫번째"); queue.Enqueue("두번째"); Console.WriteLine(queue.Dequeue()); Stack<string> stack = new Stack<string>(); stack.Push("첫번째"); stack.Push("두번째"); Console.WriteLine(stack.Pop()); } } |
이 예제에서는 Queue
에 요소를 추가하고 제거하는 방법과 Stack
에 요소를 추가하고 제거하는 방법을 보여줍니다.
HashSet 중복 없는 요소의 집합
HashSet
는 중복을 허용하지 않는 컬렉션입니다. 이는 주로 요소의 고유성을 보장하는 데 사용됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using System; using System.Collections.Generic; class Program { static void Main() { HashSet<int> numbers = new HashSet<int> { 1, 2, 3, 4, 5 }; numbers.Add(1); // 이 요소는 추가되지 않음 foreach (int number in numbers) { Console.WriteLine(number); } } } |
중복 없이 정수를 저장하는 HashSet
을 생성하고, 요소를 출력합니다.
C#에서는 위와 같이 다양한 컬렉션들은 프로그래머에게 데이터를 효율적으로 관리할 수 있는 다양한 방법을 제공합니다. 각 컬렉션은 고유한 특성과 사용 사례를 가지고 있으며, 이를 이해하고 적절히 활용하는 것이 중요하다고 생각합니다. 프로그램의 요구 사항에 맞는 적절한 컬렉션을 선택함으로써, 보다 효과적이고 효율적인 코드를 작성할 수 있을 것 입니다. 여러분들도 적절한 곳에 컬렉션을 사용해보세요. 오늘도 긴 글 읽어주셔서 감사합니다.