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로 활용하는 방법
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (597) N
      • 상품 추천 (105) N
      • MongoDB (4)
      • 하드웨어 (9)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (12)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50)
        • 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)
  • 인기 글

  • 태그

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

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

티스토리툴바