C#/책 정리
C# 정리 ) System.Array
denofevil
2021. 11. 29. 16:42
object가 모든 타입의 조상인 것처럼 소스코드에 정의되는 배열은 모두 Array 타입을 조상으로 둔다.
int[] intArray = new int[] { 0, 1, 2, 3, 4, 5 }
다음과 같이 배열을 정의한 경우, C# 컴파일러는 자동적으로 int[] 타입을 Array타입으로부터 상속받은 것으로 처리한다.
이로인해 배열 인스턴스(위의 코드에서는 intArray)는 Array 타입이 가진 모든 특징을 제공한다.
알아두면 유용하게 사용할 수 있는 일부 메서드를 보도록 한다.
멤버 | 타입 | 설명 |
Rank | 인스턴스 프로퍼티 | 배열 인스턴스의 차원(dimension) 수를 반환한다. |
Length | 인스턴스 프로퍼티 | 배열 인스턴스의 요소(element) 수를 반환한다. |
Sort | 정적 메서드 | 배열 요소의 값을 순서대로 정렬한다. |
GetValue | 인스턴스 메서드 | 지정된 인덱스의 배열 요소 값을 반환한다. |
Copy | 정적 메서드 | 배열의 내용을 다른 배열에 복사한다. |
정적 메서드 : static으로 정의된 메서드
using System;
namespace Project3
{
class Class1
{
private static void outPutArrayInfo(Array arr)
{
Console.WriteLine("배열의 차원 수 " + arr.Rank);
Console.WriteLine("배열의 요소 수 " + arr.Length);
Console.WriteLine();
}
private static void outPutArrayElements(string title, Array arr)
{
Console.WriteLine("[" + title + "]");
for(int i = 0; i <arr.Length; i++)
{
Console.Write(arr.GetValue(i) + ", ");
}
Console.WriteLine();
}
public static void Main(String[] args)
{
bool[,] boolArray = new bool[,]
{
{true, false },
{false, false }
};
outPutArrayInfo(boolArray);
int[] intArray = new int[] { 4, 5, 3, 4, 5, 6 };
outPutArrayElements("원본 : intArray", intArray);
Array.Sort(intArray);
outPutArrayElements("Arr.sort 후 intArray", intArray);
int[] copyArray = new int[intArray.Length];
Array.Copy(intArray, copyArray, intArray.Length);
outPutArrayElements("intArray로부터 복사된 copyArray", copyArray);
}
}
}
출력 결과 :
배열의 차원 수 2
배열의 요소 수 4
[원본 : intArray]
4, 5, 3, 4, 5, 6,
[Arr.sort 후 intArray]
3, 4, 4, 5, 5, 6,
[intArray로부터 복사된 copyArray]
3, 4, 4, 5, 5, 6,
중요한 것은 배열이 System.Array로부터 상속을 받는 [참조형 타입]이라는 것이다.