제로의영역

10.6 가변 배열 본문

C#

10.6 가변 배열

아이큐제로 2019. 8. 9. 17:34

* 본 블로그 글은 머리가 아~~~주 나쁜 왕X100초보가 프로그래밍을 공부하면서 정리를 위해 작성하는 글입니다. 잘못 정리되거나 제가 잘못 이해한 글은 이해 및 조언 부탁드립니다.

* 공부는 '이것이 C#이다' 책을 보고 하고 있습니다. 참고로 저같은 왕초보가 보기 어렵게 써져 있어서 별도의 정리 문서를 만들게 되었습니다.

 

1. 정의: 다양한 길이의 배열을 요소로 가지는 다차원 배열

 

2. 사용법

가변배열 선언: 데이터형식[ ][ ] 배열이름 = new 데이터형식[가변 배열의 용량][ ];

2차원배열 선언: 데이터형식[,] 배열이름 = new 데이터형식[2차원길이, 1차원길이];

 

3. 가변배열 과 2차원 배열의 차이점

 (1) [ ]가 두 개

 (2) 가변 배열의 요소로 입력되는 배열의 길이가 같지 않아도 됨.

 

4. 선언과 초기화: 예로 확인

 

선언 예)

int[][] jagged=new int[3][];
jagged[0]=new int[5]{1,2,3,4,5};
jagged[1]=new int[]{10,20,30};
jagged[2]=new int[]{100,200};

 

초기화 예)

int[][] jagged2=new int[2][]
{
	new int[]{1000, 2000},
    new int[4]{6, 7, 8, 9}
    };

 

예제)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._7
{
    class MainProgram
    {
        static void Main(string[] args)
        {
            int[][] jagged = new int[3][];  // 가변배열 선언
            jagged[0] = new int[5] { 1, 2, 3, 4, 5 };
            jagged[1] = new int[] { 10, 20, 30 };
            jagged[2] = new int[] { 100, 200 };

            
            foreach(int[] arr in jagged)    // jagged안에서 arr(배열요소)를 순회 >> jagged[0], jagged[1], jagged[2]
            {
                Console.Write($"Length:{arr.Length}, ");    //배열의 길이 출력
                foreach(int e in arr)   //배열안에서 정수를 순회
                {
                    Console.Write($"{e} ");
                }
                Console.WriteLine("");
            }

            Console.WriteLine("");

            int[][] jagged2 = new int[2][]  // 가변배열 초기화
            {
                new int[]{1000,2000},
                new int[4]{6,7,8,9} };

            foreach (int[] arr in jagged2)  // 가변배열안에서 배열 순회
            {
                Console.Write($"Length:{arr.Length}, ");
                foreach(int e in arr)
                {
                    Console.Write($"{e} ");
                }
                Console.WriteLine();
            }
        }
    }
}

 

실행결과

Length:5, 1 2 3 4 5
Length:3, 10 20 30
Length:2, 100 200

Length:2, 1000 2000
Length:4, 6 7 8 9

'C#' 카테고리의 다른 글

10.9 인덱서  (0) 2019.11.18
10.8 컬렉션을 초기화하는 방법  (0) 2019.09.19
10.5 다차원배열  (0) 2019.08.09
10.4 2차원 배열  (0) 2019.08.06
10.3 알아두면 삶이 윤택해지는 System.Array  (0) 2019.08.05