• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] C# - Arrays (배열)

4,328  
목차
  1. C# 배열 선언
  2. 배열 요소 접근 (= 색인번호 = index)
  3. 배열 요소 변경
  4. 배열 길이 (= 배열 요소 개수)
  5. 배열 반복 실행. (for, for_each 반복문)
  6. 배열 정렬
  7. System.Linq Namespace 소속 메서드
  8. 배열 생성 여러 방법들

 

※ 배열은 단일 변수에 여러 값을 저장할 때 사용.

 

C# 배열 선언

[방법1 ★] - 배열 변수 선언과 동시에 중괄호 {} 이용해 요소 추가.


dataType[arrName = { emt1, emt2, ....};

 

(예제) 

string[] codes = {"HTML", "CSS", "JS"}

int[] nums = {1, 2, 3, 4};

 


[방법2] 배열 변수 먼저 선언 후, 나중에 색인번호 이용해 요소 추가.

 

dataType[arrName = new dataType[Length];

arrName[0] = emt1;

arrName[1] = emt2;

...

 

(예제)

string[] codes = new string[3];

codes[0] = "HTML";

codes[1] = "CSS";

codes[2] = "JS";


PS. 맨 하단 '배열 선언 그외 방법들' 참조.

 

배열 요소 접근 (= 색인번호 = index)

 

요소 개수가 n개인 배열 색인번호 (= 위치)는 0부터 시작.

(예) 

[0] 첫번째 요소, [1] 두번째요소, ... , [n-1] 마지막요소.

 


[예제]

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes = {"HTML", "CSS", "JS"};

      Console.WriteLine(codes[0]); // HTML

    }

  }

}

 

결과값: HTML 

 

배열 요소 변경

※ 색인번호 이용해 요소값 재설정.

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes = {"HTML", "CSS", "JS"};

      codes[0] = "C#";

      Console.WriteLine(codes[0]); // C#

    }

  }

}

 

결과값: C#

 

배열 길이 (= 배열 요소 개수)

 

arrName.Length 속성 이용.

 


[예제]

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes = {"HTML", "CSS", "JS"};

      Console.WriteLine(codes.Length); // 3

    }

  }

}

 

결과값: 3

 

배열 반복 실행. (for, for_each 반복문)

[for 반복문] - 배열 요소 개수 알아야 가능. 

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes = {"HTML", "CSS", "JS"};

      for (int i = 0; i < codes.Length; i++) 

      {

        Console.WriteLine(codes[i]);

      }

    }

  }

}

 

결과값:

HTML

CSS

JS


[for_each 반복문]  ※ 배열 요소 개수 몰라도 가능. 

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes = {"HTML", "CSS", "JS"};

      foreach (string i in codes) 

      {

        Console.WriteLine(i);

      }   

    }

  }

}

 

결과값:

HTML

CSS

JS

 

※ 배열 경우, foreach 반복문이 더 간결.

 

배열 정렬

 

[오름차순]

Array.Sort(arrName);

 

[내림차순]

Array.Sort(arrName);

Array.Reverse(arrName);

 

PS. 내림차순 하려면, 먼저 오름차순 정렬 후 순서 뒤집음.


[예제1] 오름차순

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      // 문자열 정렬

      string[] codes = {"HTML", "CSS", "JS", "C#"};

      Array.Sort(codes);

      foreach (string i in codes)

      {

        Console.WriteLine(i);

      }    

      

      // 정수 정렬

      int[] nums = {2, 1, 4, 3};

      Array.Sort(nums);

      foreach (int i in nums)

      {

        Console.WriteLine(i);

      }

    }

  }

}

 

결과값:

C#

CSS

HTML

JS

1

2

3

4


[예제] 내림차순 정렬.

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      // 문자열 정렬

      string[] codes = {"HTML", "CSS", "JS", "C#"};

      Array.Sort(codes);

      Array.Reverse(codes);

      foreach (string i in codes)

      {

        Console.WriteLine(i);

      }    

      

      // 정수 정렬

      int[] nums = {2, 1, 4, 3};

      Array.Sort(nums);

      Array.Reverse(nums);

      foreach (int i in nums)

      {

        Console.WriteLine(i);

      }

    }

  }

}


결과값:

JS

HTML

CSS

C#

4

3

2

1

 

 

System.Linq Namespace 소속 메서드

 

1. 

상단에 아래 네임스페이스 필수 추가 후,

using System.Linq; 

 

2.

아래의 배열 관련 메서드를 사용 가능.

arrName.Max() : 배열 요소 중 최대값 반환.

arrName.Min() : 배열 요소 중 최소값 반환.

arrName.Sum() : 배열 요소의 합계 반환.

 


[예제]

 

using System;

using System.Linq;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      int[] nums = {2, 1, 4, 3};

      Console.WriteLine(nums.Max());  // 4

      Console.WriteLine(nums.Min());  // 1

      Console.WriteLine(nums.Sum());  // 10

    }

  }

}

 

 

배열 생성 여러 방법들


※ 배열 변수 먼저 생성 후, 나중에 값 추가.

string[] codes = new string[3];


※ 배열 변수 생성과 동시에 값 추가.

string[] codes = new string[3] {"HTML", "CSS", "JS"};

 

※ 배열 길이 생략.

string[] codes = new string[] {"HTML", "CSS", "JS"};


※ new 키워드와 배열 길이 생략. (★ 제일 간단)

string[] codes = {"HTML", "CSS", "JS"};

int[] nums = { 1, 3, 5, 7, 9 };



[정상 출력1]

※ 배열 선언 후 나중에 초기화 시, new 키워드 필수.

※ 핑크색 코드 생략 시, 에러 발생.

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes;

      codes = new string[] {"HTML", "CSS", "JS"};

      Console.WriteLine(codes[0]); // HTML

    }

  }

}



[정상 출력2]

※ 핑크색 코드 생략 시 에러 발생.

※ 배열 길이 생략하거나, 추가할 요소 개수보다 부족해도 에러 발생.

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes= new string[3] ;

      codes[0] = "HTML";

      codes[1] = "CSS";

      codes[2] = "JS";

      Console.WriteLine(codes[0]); // HTML

    }

  }

}

 


PS. 에러 발생1.

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes;

      codes[0] = "HTML";

      codes[1] = "CSS";

      codes[2] = "JS";

      Console.WriteLine(codes[0]); 

    }

  }

}

 


PS. 에러 발생2.

 

using System;

namespace Homzzang

{

  class Program

  {

    static void Main(string[] args)

    {

      string[] codes = new string[] ;

      codes[0] = "HTML";

      codes[1] = "CSS";

      codes[2] = "JS";

      Console.WriteLine(codes[0]); // 에러 발생.

    }

  }

}

 



분류 제목
basic C# - Home (입문) - 추천 링크
basic C# - Intro (소개) - 용도・특징
basic C# - Start (시작) - Visual Studio Community 설치/실행/세팅
basic C# - Syntax (구문)
basic C# - Output (출력)
basic C# - New Lines (줄바꿈)
basic C# - Comment (주석)
basic C# - Variable (변수)
basic C# - User Input (사용자 입력)
basic C# - Data Type (데이터 타입) - 자료형 (종류 + 변환)
basic C# - Operator (연산자)
basic C# - String (문자열)
basic C# - Math (수학)
basic C# - Boolean (참거짓)
basic C# - If ... Else - (이프 조건문)
basic C# - Switch (스위치 조건문)
basic C# - While Loop (와일 반복문)
basic C# - For Loop (포 반복문)
basic C# - Break/Continue (브레이크/컨티뉴) 키워드 - 반복문 빠져나가기 / 특정 조건 건너띄기
basic C# - Arrays (배열)
목록
찾아주셔서 감사합니다. Since 2012