* 배열
int[] a = new int[3]; // 배열 선언의 기본형
a[0] = 10; // 배열에 값 넣기
a.length; // 배열의 길이 (3)
foreach(int x in a){
console.write(x); // 배열의 순서대로 값이 나옴
}
* 배열 초기화 방법
int[] abc = new int[3]{1,2,3}; // 3을 생략해도 되고 안해도 됨
int[] abc = new int[3];
int[] abc = {1,2,3};
// 모두 초기화 방법인데 마지막 방법이 가장 좋아보임.
* System.Array 메소드들
using system;
int []a = new int[3]{3,2,1};
Array.sort(a);
// 이러한 예제가 있을 경우에 Array 관련
Array.Sort(배열);
// a를 1,2,3으로 정렬해줌
Array.foreach<자료형>(배열, new action<int>(함수));
// foreach문 처럼 배열의 값 하나씩 함수로 보냄
Array.BinarySearch<int>(배열, 3));
// 배열 중 3이 몇 번째 인덱스에 있는지 반환 (이진탐색)
Array.Indexof(배열, 2);
// 배열 중 2가 몇 번째 인덱스에 있는지 반환
Array.TruForAll<자료형>(배열, 함수));
// 해당 함수로 가서 배열에서 true 또는 false 반환값을 나타냄. bool이 반환형인 함수만 쓰자.
int index = Array.FindIndex<자료형>(배열, 함수);
// trueforall과 똑같은데 코드를 직접 함수에 적음
Array.Resize<자료형>(ref 배열, 5);
// 해당 배열의 길이를 5로 재조정함
Array.Clear(배열, 3, 7);
// 배열 값을 인덱스 3~7까지 초기화해서 0으로 바꿔버림.
배열.rank;
// 배열이 1차원인지 2차원인지 알려줌.
배열.Length;
// 배열의 길이를 반환
배열.GetLength(0);
// 차원의 길이를 반환. 0이면 1차원 배열의 길이를 반환함. a배열로 치면 3이됨.
// 정말 쓸만한건 array에서 resize, clear, indexof 정도이고 배열에선 length 정도
* 2차원 배열
* 2차원 배열 초기화 방법
int[,] abc = new int[1,1]{{1,2},{2,3}}; // 3을 생략해도 되고 안해도 됨
int[,] abc = new int[1,1];
int[,] abc = {{1,2},{2,3}};
// 모두 초기화 방법인데 마지막 방법이 가장 좋아보임.
* 접근 방법
Console.WriteLine(abc[0, 0]);
* 가변 배열
// 가변배열은 배열을 담는 배열이다. 행만 쓴다고 생각하면 편함.
int[][] a = new int[2][]; // [3][] 해놓고 가득 안채우면 foreach 에러
a[0] = new int[3] { 1, 2, 3 };
a[1] = new int[3] { 4, 44, 444 };
Console.WriteLine(a[0][1]); // 값 1
foreach(int[] x in a) // int[][] 형을 int[]로 변환
{
foreach(int y in x) // int[] 형을 int로 변환
{
Console.Write(y);
}
Console.WriteLine("");
}