728x90
프로그래밍에서 컬렉션은 객체 그룹을 저장하고 관리하는 데 필수적입니다. C#의 List<T>는 제네릭을 통해 데이터를 효율적으로 처리할 수 있는 강력한 도구입니다. 이 글에서는 List<T>의 기능과 활용법을 자세히 살펴보겠습니다.
리스트의 기본 개념
리스트는 동적 배열로, 런타임에 크기를 조정할 수 있는 유연성을 제공합니다. 이는 사전에 항목 수를 알 수 없는 상황에서 특히 유용합니다.
리스트의 주요 특징
- 동적 크기 조정: 초기 크기를 지정할 필요가 없습니다.
- 타입 안전성: 제네릭을 사용하여 데이터 유형을 정의할 수 있습니다.
- 풍부한 기능성: 데이터 검색, 정렬 및 조작을 위한 내장 메서드를 제공합니다.
728x90
리스트 생성 및 초기화
리스트를 사용하려면 System.Collections.Generic 네임스페이스를 포함해야 합니다.
using System.Collections.Generic;
List<int> numbers = new List<int>();
리스트에 항목 추가하기
Add() 메서드를 사용하여 리스트에 항목을 추가할 수 있습니다.
numbers.Add(10);
numbers.Add(20);
numbers.Add(30);
리스트의 항목 접근 및 반복
리스트의 항목은 인덱스를 통해 접근할 수 있으며, foreach나 for 루프를 사용하여 반복할 수 있습니다.
foreach (int number in numbers)
{
Console.WriteLine(number);
}
리스트에서 항목 제거하기
Remove()와 RemoveAt() 메서드를 사용하여 항목을 제거할 수 있습니다.
numbers.Remove(20);
numbers.RemoveAt(0);
리스트의 정렬 및 검색
리스트는 .Sort()와 .Contains() 메서드를 통해 정렬 및 검색 기능을 제공합니다.
numbers.Sort();
bool hasThirty = numbers.Contains(30);
실용적인 예: 학생 성적 관리
리스트를 사용하여 학생의 성적을 관리하는 예를 통해 리스트의 실제 응용을 살펴보겠습니다.
- 학생 클래스 정의:
public class Student { public string Name { get; set; } public int Grade { get; set; } public Student(string name, int grade) { Name = name; Grade = grade; } }- 학생 리스트 생성:
List<Student> students = new List<Student>();- 학생 추가:
students.Add(new Student("Alice", 85)); students.Add(new Student("Bob", 90)); students.Add(new Student("Charlie", 78));- 평균 성적 계산:
double averageGrade = students.Average(s => s.Grade); Console.WriteLine($"Average Grade: {averageGrade}");- 모든 성적 표시:
foreach(var student in students) { Console.WriteLine($"{student.Name}: {student.Grade}"); }
이 예제는 리스트가 데이터를 효과적으로 관리할 수 있는 방법을 보여줍니다.
결론
리스트와 같은 컬렉션을 이해하는 것은 객체 그룹을 관리하는 능력을 향상시킵니다. C#의 제네릭 및 다른 컬렉션 유형과 관련된 고급 주제를 준비하는 데도 도움이 됩니다. 이러한 개념에 대한 숙달은 더 큰 프로젝트를 효율적으로 처리하기 위한 견고한 기초를 마련합니다.
728x90
'프로그래밍 > C#' 카테고리의 다른 글
| C#에서 HashSet을 활용한 고유 데이터 관리의 중요성 (0) | 2025.08.26 |
|---|---|
| C#에서 Dictionary를 활용한 효율적인 데이터 관리 (0) | 2025.08.26 |
| 객체 지향 프로그래밍의 핵심: 캡슐화의 이해와 활용 (1) | 2025.08.25 |
| C#에서 다형성을 활용한 유연한 프로그래밍 (0) | 2025.08.25 |
| 객체 지향 프로그래밍에서의 상속: 코드 재사용성과 조직화의 열쇠 (0) | 2025.08.24 |