List<T> FindIndex

2024. 3. 8. 10:12·C#
반응형
FindIndex 메서드는 리스트에서 특정 조건을 만족하는 첫 번째 요소의 인덱스를 찾는 데 사용됩니다.

 

사용 방법:

1. FindIndex(Predicate<T> match):

  • Predicate<T> 델리게이트를 사용하여 조건을 정의합니다.
  • 델리게이트는 리스트의 각 요소를 검사하고, 조건을 만족하는 경우 true를 반환합니다.
  • 조건을 만족하는 첫 번째 요소의 인덱스를 반환합니다.
  • 조건은 만족하는 요소가 없으면 -1을 반환합니다.

2. FindIndex(int startIndex, Predicate<T> match):

  • 검색을 시작할 인덱스를 지정합니다.
  • startIndex는 0부터 시작하며, 리스트의 크기보다 크거나 같을 수 없습니다.
  • startIndex 이후에 조건을 만족하는 첫 번째 요소의 인덱스를 반환합니다.
  • 조건은 만족하는 요소가 없으면 -1을 반환합니다.

3. FindIndex(int startIndex, int count, Predicate<T> match):

  • 검색 범위를 지정합니다.
  • startIndex는 0부터 시작하며, 리스트의 크기보다 크거나 같을 수 없습니다.
  • count는 검색할 요소의 수입니다.
  • startIndex부터 count만큼 범위애서 조건을 만족하는 첫 번째 요소의 인덱스를 반환합니다.
  • 조건을 만족하는 요소가 없으면 -1을 반환합니다. 

 

예시:

List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };

// 짝수를 찾는 예시
int evenIndex = numbers.FindIndex(x => x % 2 == 0);

if (evenIndex != -1)
{
    Console.WriteLine("첫 번째 짝수의 인덱스: {0}", evenIndex);
}
else
{
    Console.WriteLine("짝수가 없습니다.");
}

// 3보다 큰 값을 찾는 예시
int greaterThan3Index = numbers.FindIndex(2, 3, x => x > 3);

if (greaterThan3Index != -1)
{
    Console.WriteLine("3보다 큰 값의 첫 번째 인덱스 (2번째 요소부터 3개 검색): {0}", greaterThan3Index);
}
else
{
    Console.WriteLine("3보다 큰 값이 없습니다 (2번째 요소부터 3개 검색).");
}

 

최적화 팁:

  • FindIndex 메서드는 리스트의 모든 요소를 검사하기 때문에, 리스트 크기가 클 경우 성능 저하를 초래할 수 있습니다.
  • 성능이 중요한 경우, BinarySearch 메서드를 사용하여 정렬된 리스트에서 특정 값을 찾는 것이 더 효율적일 수 있습니다.
  • FindAll 메서드는 조건을 만족하는 모든 요소를 찾는 데 사용할 수 있습니다.

이 글을 통해 C# List<T> 클래스의 FindIndex 메서드를 자세하게 이해하고 다양한 상황에 활용할 수 있을 것입니다.

댓글을 통해 여러분의 의견을 공유해주세요!

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

Costura.Fody : 참조 DLL 라이브러리 하나로 합치기  (0) 2024.07.08
생성자 체이닝 (Constructor Chaining)  (0) 2024.05.14
객체 생성 : Activator.CreateInstance와 new(T)  (0) 2023.12.16
C# 비트 연산 : enum을 flag로 활용하는 방법  (0) 2023.12.11
C#에서 class와 struct의 차이점  (0) 2023.12.06
'C#' 카테고리의 다른 글
  • Costura.Fody : 참조 DLL 라이브러리 하나로 합치기
  • 생성자 체이닝 (Constructor Chaining)
  • 객체 생성 : Activator.CreateInstance와 new(T)
  • C# 비트 연산 : enum을 flag로 활용하는 방법
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (727)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    programmerlife
    리뷰관리
    list
    C#
    cv2
    유니티
    스마트스토어리뷰
    리뷰이관
    파이썬
    쇼핑몰리뷰
    스크립트 실행
    카페24리뷰
    unity
    ipcamera
    rtsp
    카페24리뷰이관
    스크립트 실행 순서
    리스트
    믈레코비타멸균우유
    라떼우유
    긴유통기한우유
    Python
    appdevelopment
    codingcommunity
    셀레니움
    devlife
    codingtips
    programming101
    상품 리뷰 크롤링
    learntocode
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
List<T> FindIndex
상단으로

티스토리툴바