본문 바로가기
카테고리 없음

C#의 List, List<List>, 2차원 배열(Matrix) 개념과 예제

by tasiklee 2025. 2. 19.

C#에서는 데이터를 저장하고 관리하기 위해 다양한 컬렉션 및 배열을 사용할 수 있습니다. 이번 글에서는 List<string>, List<List<string>>, 그리고 2차원 배열(Matrix)의 개념과 활용법을 살펴보고, for 문을 이용한 예제를 함께 다뤄보겠습니다.


1. List

List<string>은 문자열을 저장할 수 있는 동적 리스트입니다. 크기가 자동으로 조절되므로 편리하게 사용할 수 있습니다.

예제: List 활용

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> names = new List<string>();
        names.Add("Alice");
        names.Add("Bob");
        names.Add("Charlie");

        // for문을 이용한 출력
        for (int i = 0; i < names.Count; i++)
        {
            Console.WriteLine(names[i]);
        }
    }
}

실행 결과:

Alice
Bob
Charlie

2. List<List> (중첩 리스트)

List<List<string>>은 리스트 안에 리스트를 저장하는 자료구조로, 동적인 2차원 배열처럼 사용할 수 있습니다.

예제: List<List> 활용

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<List<string>> students = new List<List<string>>();

        students.Add(new List<string> { "Alice", "A" });
        students.Add(new List<string> { "Bob", "B" });
        students.Add(new List<string> { "Charlie", "C" });

        // 중첩 for문을 이용한 출력
        for (int i = 0; i < students.Count; i++)
        {
            for (int j = 0; j < students[i].Count; j++)
            {
                Console.Write(students[i][j] + " ");
            }
            Console.WriteLine();
        }
    }
}

실행 결과:

Alice A
Bob B
Charlie C

3. 2차원 배열(Matrix)

C#에서는 [,]을 사용하여 2차원 배열을 선언할 수 있습니다. 크기가 고정되지만, 특정한 행과 열의 값을 쉽게 접근할 수 있습니다.

예제: 2차원 배열 활용

using System;

class Program
{
    static void Main()
    {
        string[,] matrix =
        {
            { "Alice", "A" },
            { "Bob", "B" },
            { "Charlie", "C" }
        };

        // 2중 for문을 이용한 출력
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                Console.Write(matrix[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
}

실행 결과:

Alice A
Bob B
Charlie C

4. List<List>와 2차원 배열 비교

비교 항목List<List>2차원 배열 (Matrix)

크기 조정 동적 조정 가능 고정됨
성능 약간 느릴 수 있음 상대적으로 빠름
사용 용도 유동적인 데이터 관리 고정된 크기의 데이터 처리

마무리

이제 List<string>, List<List<string>>, 그리고 2차원 배열(Matrix)의 개념과 for 문을 활용한 예제를 익혔습니다. 각각의 구조는 상황에 맞게 선택하여 사용할 수 있으며, 데이터 크기와 변경 가능성을 고려하여 적절한 방식을 선택하는 것이 중요합니다.

다음에도 유용한 C# 관련 정보로 찾아뵙겠습니다! 😊