[c#] 제네릭 컬렉션과 비제네릭 컬렉션의 차이

제네릭(Generic) 컬렉션과 비제네릭(Non-generic) 컬렉션은 C#에서 데이터를 저장하고 관리하는 데 사용되는 두 가지 유형의 컬렉션입니다. 이들 간의 주요 차이점을 알아보고 사용 사례를 살펴보겠습니다.

1. 제네릭 컬렉션

제네릭 컬렉션은 C# 2.0부터 도입되었으며, 특정 데이터 형식에 의존하지 않고 다양한 형식의 데이터를 저장할 수 있는 컬렉션입니다. 이는 즉, 동일한 컬렉션을 사용하여 다른 유형의 데이터를 저장할 수 있어 매우 유연하고 안전한 코드를 작성할 수 있도록 해줍니다.

제네릭 컬렉션의 예시로는 List<T>, Dictionary<TKey, TValue>, Queue<T>, Stack<T> 등이 있습니다.

List<int> numbers = new List<int>();
numbers.Add(10);
numbers.Add(20);

위 예시에서 List<int>int형 데이터를 저장하는 제네릭 리스트를 생성하는 것을 보여줍니다.

2. 비제네릭 컬렉션

비제네릭 컬렉션은 C# 2.0 이전에 사용되었던 컬렉션으로, 특정 데이터형식에 의존합니다. 즉, 한 가지 유형의 데이터만을 저장할 수 있으며, 데이터 형식의 안정성을 보장하지 않습니다. 또한 데이터를 꺼내거나 사용할 때 형변환(Type Casting)이 필요한 경우가 많습니다.

비제네릭 컬렉션의 예시로는 ArrayList, HashTable, Stack, Queue 등이 있습니다.

ArrayList list = new ArrayList();
list.Add(10);
list.Add("example");

위 예시에서 ArrayList는 다양한 데이터형을 저장할 수 있지만, 데이터를 사용할 때 형변환이 필요하다는 것을 보여줍니다.

결론

제네릭 컬렉션은 컴파일 타임에 형식의 안정성을 보장하기 때문에, 코드의 가독성과 유지보수성을 높여줍니다. 따라서 C#에서는 제네릭 컬렉션 사용을 권장하며, 이는 안정성과 유연성을 동시에 확보할 수 있도록 도와줍니다.

참고 문헌: