배열에서 특정 요소가 마지막으로 나타나는 위치(인덱스)를 찾으려면 Array.LastIndexOf 메서드를 사용하면 됩니다. 만약 해당 요소가 배열에 존재하지 않으면 -1을 반환합니다.
Array.LastIndexOf 메서드란?
Array.LastIndexOf는 지정한 값이 1차원 배열에서 마지막으로 발견되는 인덱스를 반환하는 정적 메서드입니다. 검색은 배열의 끝에서 시작 방향으로 진행되며, 요소를 찾지 못할 경우 -1을 반환한다는 점이 IndexOf와의 가장 큰 차이입니다.
예제 배열 준비하기
다음과 같은 정수 배열이 있다고 가정해 보겠습니다.
int[] val = { 97, 45, 76, 21, 89, 45 };위 배열에는 요소 45가 두 번 등장합니다. 각각 인덱스 1과 인덱스 5에 위치하는데, LastIndexOf를 사용하면 마지막 위치인 인덱스 5가 반환됩니다.
LastIndexOf 사용 방법
요소 45가 마지막으로 나타나는 인덱스를 구하려면 다음과 같이 Array.LastIndexOf() 메서드를 호출합니다.
int res = Array.LastIndexOf(val, 45);
첫 번째 매개변수에는 검색 대상 배열을, 두 번째 매개변수에는 찾고자 하는 값을 전달합니다.
전체 예제 코드
using System;
using System.Text;
public class Demo {
public static void Main() {
int[] val = { 97, 45, 76, 21, 89, 45 };
// 요소 45의 마지막 인덱스 찾기
int res = Array.LastIndexOf(val, 45);
// 결과 출력
Console.WriteLine("Index of element 45 is = "+res);
}
}실행 결과
Index of element 45 is = 5
요소가 존재하지 않는 경우
찾으려는 요소가 배열에 없으면 -1이 반환됩니다. 예를 들어 Array.LastIndexOf(val, 100)을 호출하면 -1이 출력됩니다. 따라서 실무 코드에서는 반환값이 -1인지 먼저 확인하여 요소의 존재 여부를 판단한 뒤 인덱스를 사용하는 것이 안전합니다.