2024. 9. 1. 16:33ㆍc#
C#에서의 배열과 컬렉션
C#에서 배열과 컬렉션은 데이터를 효율적으로 저장하고 관리하기 위한 기본적인 도구들입니다.
배열은 고정된 크기의 동일한 타입의 데이터 집합을 저장하는 데 사용되고,
컬렉션은 보다 유연하게 데이터를 저장하고 관리할 수 있는 도구입니다.
이번 포스팅에서는 배열과 컬렉션의 개념, 사용 방법, 그리고 이들의 장단점을 알아보겠습니다.
1. 배열(Array)
배열이란?
배열(Array)은 동일한 데이터 타입의 값들을 연속된 메모리 공간에 저장하는 자료 구조입니다.
배열은 고정된 크기를 가지며, 인덱스를 통해 각 요소에 접근할 수 있습니다.
배열의 크기는 생성 시 결정되며, 이후에는 변경할 수 없습니다.
배열 선언 및 초기화
C#에서 배열을 선언하고 초기화하는 방법은 다음과 같습니다:
// 배열 선언 및 초기화
int[] numbers = new int[5]; // 크기가 5인 int 배열 선언
numbers[0] = 1; // 첫 번째 요소에 값 할당
numbers[1] = 2; // 두 번째 요소에 값 할당
// 선언과 동시에 초기화
int[] scores = new int[] { 90, 85, 80, 95, 100 };
위의 코드에서 numbers 배열은 크기가 5인 정수 배열로 선언되었고, 각 요소는 인덱스를 사용하여 접근할 수 있습니다. scores 배열은 선언과 동시에 초기화되었습니다.
배열의 요소 접근
배열의 각 요소는 인덱스를 통해 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
int firstScore = scores[0]; // 첫 번째 요소 접근
Console.WriteLine($"첫 번째 점수: {firstScore}");
배열의 길이는 Length 속성을 사용하여 얻을 수 있습니다.
Console.WriteLine($"배열의 길이: {scores.Length}");
배열의 장단점
배열은 간단하고 메모리 효율적이지만, 크기가 고정되어 있기 때문에 유연성이 떨어집니다.
또한, 배열은 특정 인덱스의 요소에 빠르게 접근할 수 있지만, 요소의 삽입이나 삭제는 어렵습니다.
2. 컬렉션(Collection)
컬렉션이란?
컬렉션(Collection)은 데이터의 동적 집합을 관리할 수 있는 보다 유연한 자료 구조입니다.
컬렉션은 배열과 달리 크기가 동적으로 조절되며, 다양한 타입의 데이터를 저장할 수 있습니다.
C#에서 가장 많이 사용되는 컬렉션 타입으로는 List<T>, Dictionary<TKey, TValue>, Queue<T>, Stack<T> 등이 있습니다.
List<T> 컬렉션
List<T>는 배열과 유사하지만, 크기가 동적으로 조절되는 제네릭 컬렉션입니다.
다양한 메서드를 통해 요소의 추가, 삭제, 검색 등을 할 수 있습니다.
// List<T> 선언 및 초기화
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// 요소 추가
numbers.Add(6);
// 요소 접근
int firstNumber = numbers[0];
Console.WriteLine($"첫 번째 숫자: {firstNumber}");
// 요소 삭제
numbers.Remove(3);
// 전체 요소 출력
foreach (int number in numbers)
{
Console.WriteLine(number);
}
Dictionary<TKey, TValue> 컬렉션
Dictionary<TKey, TValue>는 키와 값의 쌍으로 데이터를 저장하는 컬렉션입니다.
각 키는 고유하며, 이를 통해 빠르게 값에 접근할 수 있습니다.
// Dictionary<TKey, TValue> 선언 및 초기화
Dictionary<string, int> ages = new Dictionary<string, int>();
// 요소 추가
ages.Add("Alice", 25);
ages.Add("Bob", 30);
// 요소 접근
int aliceAge = ages["Alice"];
Console.WriteLine($"Alice의 나이: {aliceAge}");
// 요소 삭제
ages.Remove("Bob");
컬렉션의 장단점
컬렉션은 배열보다 유연하고 다양한 기능을 제공하며, 데이터의 동적 관리를 쉽게 합니다.
그러나 배열에 비해 메모리 사용량이 많고, 특정 상황에서는 성능이 떨어질 수 있습니다.
또한, 컬렉션의 타입이 제네릭이므로, 강력한 타입 안정성을 제공합니다.
3. 배열과 컬렉션의 선택 기준
배열과 컬렉션 중 어느 것을 선택할지는 프로그램의 요구 사항에 따라 달라집니다.
- 배열을 사용하는 것이 좋을 때:
- 데이터의 크기가 고정되어 있고, 성능이 중요할 때.
- 동일한 타입의 데이터를 연속된 메모리 공간에 저장할 필요가 있을 때.
- 컬렉션을 사용하는 것이 좋을 때:
- 데이터의 크기가 동적으로 변할 때.
- 삽입, 삭제, 검색 등의 다양한 연산이 필요할 때.
- 제네릭 타입을 사용하여 타입 안정성을 유지하고 싶을 때.
배열과 컬렉션은 C#에서 데이터 관리의 핵심 도구입니다.
배열은 고정된 크기의 동일한 타입의 데이터 집합을 관리하는 데 적합하며,
컬렉션은 보다 유연하고 다양한 데이터 관리 방법을 제공합니다.
각각의 장단점을 잘 이해하고 상황에 맞게 선택하여 사용하는 것이 중요합니다.
이 포스팅에서는 배열과 컬렉션의 개념과 기본적인 사용 방법을 설명했습니다.
이를 통해 데이터 관리의 기본을 이해하고, 더 나은 프로그램을 작성할 수 있을 것입니다.
'c#' 카테고리의 다른 글
C# Dictionary와 HashSet (0) | 2024.09.01 |
---|---|
c# List와 ArrayList (0) | 2024.09.01 |
c# 오버로딩과 오버라이딩 (0) | 2024.08.31 |
c# 메서드와 함수 (0) | 2024.08.31 |
c# 반복문(for, while, do-while, foreach) (0) | 2024.08.30 |