본문 바로가기

Programming/C#

[C#]배열 뒤에서부터 배열 요소에 접근(Index from end operator)

C# 배열 뒤에서부터 배열 요소에 접근

그동안 C#에서 배열에 뒤에서 접근할때면 자체 배열을 Array.Reverse()를 이용해 뒤집은 다음에 접근하고 있었다.

파이썬이나 자바스크립트는 인덱스 값을 음수로 설정해서 접근이 가능했지만 C#은 음수로 접근하는걸 당연히 지원하지 않았고 대신 동일한 기능을 가진 Index from end operator가 C# 8.0 이후로 추가되었다는것을 알게 되었다.

 

사용 방법은 인덱스 앞에 캐럿 기호인 ^를 사용하면 된다.

 

단 음수 인덱스를 사용하는것과 똑같이 0은 음수로 존재할수 없으니 ^1가 뒤에서 첫번째 인덱스 값을 가지게 된다.

int[] x = new int[]{1, 2, 3, 4, 5};

Console.WriteLine(x[1]); // output: 2
Console.WriteLine(x[^1]); // output: 5

 

기존에 ^ 기호는 아래와 같이 XOR 계산을 할때 활용되었다.

 

Console.WriteLine(true ^ true);    // output: False
Console.WriteLine(true ^ false);   // output: True
Console.WriteLine(false ^ true);   // output: True
Console.WriteLine(false ^ false);  // output: False