C#에서 리스트(List)에 있는 항목의 인덱스를 단 한 줄의 코드로 확인하고 싶다면 FindIndex() 메서드와 Contains() 메서드를 함께 사용하면 됩니다.
int index = myList.FindIndex(a => a.Contains("Tennis"));위 코드에서는 FindIndex() 메서드를 사용해 요소의 인덱스를 가져왔습니다. 이때 람다 식 내부의 Contains() 메서드가 특정 문자열을 포함하는 요소를 찾는 역할을 담당합니다.
참고로 FindIndex()는 조건을 만족하는 첫 번째 요소의 인덱스를 반환하며, 조건에 맞는 요소가 존재하지 않을 경우 -1을 반환합니다. 따라서 실제 프로젝트에서는 반환값이 -1인지 검사하는 예외 처리를 함께 작성하는 것이 좋습니다.
전체 예제 코드
using System;
using System.Collections.Generic;
public class Program {
public static void Main() {
List<string> myList = new List<string>() {
"Football",
"Soccer",
"Tennis",
};
// 인덱스 찾기
int index = myList.FindIndex(a => a.Contains("Tennis"));
// 인덱스 출력
Console.WriteLine("List Item Tennis Found at index: " + index);
}
}실행 결과
List Item Tennis Found at index: 2
이처럼 FindIndex()와 Contains()를 조합하면 별도의 반복문을 작성하지 않고도 리스트 내 원하는 항목의 위치를 간결하게 찾아낼 수 있습니다.