Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# StringCollection에서 특정 문자열이 처음 나타나는 인덱스 구하는 방법

C#에서 StringCollection에 저장된 문자열 중 특정 값이 처음 등장하는 위치(인덱스)를 확인하고 싶다면 IndexOf 메서드를 사용하면 됩니다. 이 메서드는 컬렉션을 처음부터 순회하며 일치하는 첫 번째 요소의 인덱스를 반환합니다.

아래 예제 코드를 통해 실제 동작 방식을 살펴보겠습니다.

예제 1: Insert 후 IndexOf로 인덱스 찾기

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      StringCollection strCol = new StringCollection();
      strCol.Add("Accessories");
      strCol.Add("Books");
      strCol.Add("Electronics");
      strCol.Add("Books");
      Console.WriteLine("StringCollection 요소...");
      foreach (string res in strCol) {
         Console.WriteLine(res);
      }
      strCol.Insert(2, "Headphone");
      Console.WriteLine("StringCollection 요소... 업데이트됨");
      foreach (string res in strCol) {
         Console.WriteLine(res);
      }
      Console.WriteLine("Books가 처음 나타나는 인덱스 = " + strCol.IndexOf("Books"));
   }
}

출력 결과

StringCollection 요소...
Accessories
Books
Electronics
Books
StringCollection 요소... 업데이트됨
Accessories
Books
Headphone
Electronics
Books
Books가 처음 나타나는 인덱스 = 1

위 출력에서 볼 수 있듯이, 컬렉션에는 "Books"가 두 번 포함되어 있지만 IndexOf("Books")는 가장 앞쪽에 있는 1번 인덱스만 반환합니다. 또한 Insert(2, "Headphone")으로 새 요소를 삽입한 뒤에도 기존 "Books"의 위치가 올바르게 유지되는 것을 확인할 수 있습니다.

예제 2: AddRange로 배열 추가 후 인덱스 찾기

이번에는 문자열 배열을 AddRange로 한 번에 추가하고, 중복된 요소의 인덱스를 조회하는 예제입니다.

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      StringCollection strCol = new StringCollection();
      String[] strArr = new String[] { "A", "B", "C", "D", "E", "F", "D", "H" };
      Console.WriteLine("StringCollection 요소...");
      foreach (string str in strArr) {
         Console.WriteLine(str);
      }
      strCol.AddRange(strArr);
      Console.WriteLine("인덱스 5의 요소 = " + strCol[5]);
      Console.WriteLine("StringCollection의 문자열 개수 = " + strCol.Count);
      Console.WriteLine("D가 처음 나타나는 인덱스 = " + strCol.IndexOf("D"));
   }
}

출력 결과

StringCollection 요소...
A
B
C
D
E
F
D
H
인덱스 5의 요소 = F
StringCollection의 문자열 개수 = 8
D가 처음 나타나는 인덱스 = 3

핵심 정리

  • IndexOf(string)은 지정한 문자열과 일치하는 첫 번째 요소의 인덱스(0부터 시작)를 반환합니다.
  • 중복된 값이 여러 개 있어도 항상 가장 앞에 있는 항목만 반환됩니다.
  • 일치하는 요소가 없으면 -1을 반환합니다.
  • 대소문자를 구분하므로 검색 시 주의가 필요합니다.