반응형
C#의 1차원 배열, 2차원 배열의 크기 증가 및 감소 방법을 알아보자.
1차원 배열 크기 증가
//1차원 배열을 선언
//[ "A" , "B" ]의 구조를 가지는 배열
//[0] = "A"
//[1] = "B"
string [] t배열 = { "A", "B" };
//배열의 크기 확인 = 2
Console.WriteLine(t배열. Length);
//배열의 크기 변경. 5개로 변경
//변경된 배열은 [ "A", "B", null, null, null ]의 구조
//[0] = "A"
//[1] = "B"
//[2] = "C"
//[3] = "D"
//[4] = "E"
Array.Resize(ref t배열, 5);
t배열[2] = "C";
t배열[3] = "D";
t배열[4] = "E";
//배열의 크기 확인 = 5
Console.WriteLine(t배열. Length);
Array.Resize(ref 배열이름, 변경할 배열의 크기)는 "1차원 배열"에서만 사용 가능하다
1차원 배열 크기 감소
//1차원 배열을 선언
//[ "A", "B", "C", "D", "E" ]의 구조를 가지는 배열
//[0] = "A"
//[1] = "B"
//[2] = "C"
//[3] = "D"
//[4] = "E"
string[] t배열 = { "A", "B", "C", "D", "E" };
//배열의 크기 확인 = 5
Console.WriteLine(t배열. Length);
//배열의 크기 변경. 2개로 변경
//크가가 감소된 배열은 [ "A", "B" ]의 구조
//[0] = "A"
//[1] = "B"
Array.Resize(ref t배열, 2);
//배열의 크기 확인 = 2
Console.WriteLine(t배열. Length);
Array.Resize 구문은 "1차원 배열"에서만 사용 가능하다.
배열이 감소될 때 선언된 공간 속의 값은 사라지며, 크기를 다시 늘려도 값은 복구되지 않는다.
2차원 배열 크기증가
//전역 변수 2차원 배열 선언
string [,] t배열 = new String[,] { };
string [,] t배열 back;
int t배열 row = t배열. GetLength(0); //현재 배열의 행의 개수
//배열 행의 크기가 0인 경우
if (t배열. GetLength(0) == 0)
{
//2차원 배열의 크기 증가
t배열 = new string [t배열 row + 1, 2];
//증가된 배열의 값 입력
t배열[t배열 row, 0] = t배열 row.ToString();
t배열[t배열row, 1] = t배열row.ToString();
}
//배열 행의 크기가 0이 아닌 경우
else
{
//기존 배열을 백업 배열 변수에 입력
//배열 크기 변경 시 경우 기존 배열의 데이터가 초기화됨
t배열 back = t배열;
//기존 배열 크기 증가
t배열 = new string [t배열 row + 1, 2];
//백업 배열에 있는 기존 배열 데이터 이동
for (int i = 0; i < t배열 row; i++)
{
t배열[i, 0] = t배열 back [i, 0];
t배열[i, 1] = t배열back[i, 1];
}
//증가된 배열 row 값 입력
t배열[t배열 row, 0] = t배열 row.ToString();
t배열[t배열row, 1] = t배열row.ToString();
}
2차원 배열 크기감소
//2차원 배열 선언
//[{ "A","1" },{"B","2"}, {"C","3"},{"D","4"},{"E","5"}] 구조의 배열
//[0][0] = "A"
//[0][1] = "1"
//[1][0] = "B"
//[1][1] = "2"
//[2][0] = "C"
//[2][1] = "3"
//[3][0] = "D"
//[3][1] = "4"
//[4][0] = "E"
//[4][1] = "5"
// A 1
// B 2
// C 3
// D 4
// E 5
string [,] j배열 = new String [5,2]{{"A","1"},{"B","2"},{"C", "3"},{"D","4"},{"E","5"}};
string [,] j배열 back;
//기존 배열을 백업 배열 변수에 입력
//배열 크기 변경 시 경우 기존 배열의 데이터가 초기화됨
j배열 back = j배열;
//현재 배열의 행의 개수 확인 = 5
int j배열 row = j배열.GetLength(0);
//배열의 행 감소 = 4
j배열row = j배열row - 1;
//기존 배열 크기 감소
j배열 = new string [j배열 row, 2];
//백업 배열에 있는 기존 배열 데이터 이동
for (int i = 0; i < j배열 row; i++)
{
j배열[i, 0] = j배열 back [i, 0];
j배열[i, 1] = j배열back[i, 1];
}
//배열 감소 완료
//[0][0] = "A"
//[0][1] = "1"
//[1][0] = "B"
//[1][1] = "2"
//[2][0] = "C"
//[2][1] = "3"
//[3][0] = "D"
//[3][1] = "4"
// A 1
// B 2
// C 3
// D 4
반응형
댓글