1. Array

IndexOf(Array, Object)
지정된 요소를 검색하고 1차원 배열에서 처음으로 나타나는 요소의 인덱스를 반환한다.

 

Parameters

1. Array

  -  검색할 1차원 배열

2. Object

  -  배열에서 찾을 요소

 

Returns

지정된 요소가 발견된 경우 배열에서 값이 처음 나타나는 인덱스를 반환, 그렇지 않으면 -1을 반환한다.

 

Exceptions

1. ArgumentNullException

  -  배열이 null일 때

2. RankException

  -  배열이 다차원일 때

 

Examples

이 예제에서는 IndexOf 메서드의 다음 세 가지 오버로드를 호출하여 strings 문자열 배열에서 "the" 문자열의 인덱스를 찾는다.

String[] strings = { "the", "quick", "brown", "fox", "jumps",
                     "over", "the", "lazy", "dog", "in", "the",
                     "barn" };


// 첫 번째 "the" 탐색
string searchString = "the";
int index = Array.IndexOf(strings, searchString); // index == 0


// 4번째 index 이후에 나오는 첫 번째 "the" 탐색
index = Array.IndexOf(strings, searchString, 4); // index == 6


// 7번째 index와 11번째 index 사이에 나오는 첫 번째 "the" 탐색
int position = index + 1;
index = Array.IndexOf(strings, searchString, position, strings.GetUpperBound(0) - position + 1); // index == 10

 

Remarks

이 메서드는 1차원 배열의 모든 요소에서 값을 검색한다.

배열에 값이 있는지 확인하기 위해 메서드는 일치 항목을 찾을 때까지 각 요소의 Equals 메서드를 호출하여 같은지 비교한다.

즉, 요소가 Object.Equals(Object) 메서드를 override하면 해당 override가 호출된다.

대부분의 배열은 lower bound가 0이므로 이 메서드는 일반적으로 값을 찾을 수 없는 경우 -1을 반환한다.

드물게 배열의 lower bound가 Int32.MinValue(0x80000000)이고 값을 찾을 수 없는 경우 이 메서드는 Int32.MaxValue(0x7FFFFFFF)를 반환한다.

이 방법은 O(n) 연산이며, 여기서 n은 배열의 길이다. 

 

 

2. String

IndexOf(String, Int32, Int32, StringComparison)
현재 String 개체에서 지정된 문자열이 처음 나타나는 인덱스(0부터 시작)를 반환한다.
매개변수는 현재 문자열의 시작 검색 위치, 검색할 현재 문자열의 문자 수 및 지정된 문자열에 사용할 검색 유형을 지정한다.

 

Parameters

1. String

  -  찾을 문자열

2. Int32 (startIndex)

  -  탐색 시작 위치

3. Int32 (count)

  -  탐색할 문자의 수

4. StringComparison (comparisonType)

  -  검색 규칙을 지정하는 열거형 값 중 하나

 

Returns

현재 인스턴스의 시작부터 탐색하여 해당 문자열이 있는 경우, String 매개변수의 0부터 시작하는 인덱스 위치를 반환하고, 그렇지 않은 경우 -1을 반환한다.

String이 비어 있으면 반환 값은 startIndex다.

 

Exceptions

1. ArgumentNullException

  -  String이 null일 때

2. ArgumentOutOfRangeException

  -  count 또는 Int32 startIndex가 음수일 때

또는

  -  startIndex가 이 인스턴스의 길이보다 클 때

또는

  -  count가 이 문자열에서 startIndex를 뺀 길이보다 클 때

3. ArgumentException

  -  comparisonType이 유효한 StringComparison값이 아닐 때

 

Examples

이 예제에서는 IndexOf 메서드의 다음 세 가지 오버로드를 호출하여 str 문자열에서 "e" 문자열의 인덱스를 찾는다.

string str = "Hello, my name is Bella.";
  
  
// 첫 번째 "e" 탐색 
string searchString = "e";
int index = str.IndexOf(searchString); // index == 1
  
  
// 7번째 index 이후에 나오는 첫 번째 "e" 탐색 
index = str.IndexOf(searchString, 7); // index == 13
  
  
// 15번째 index와 21번째 index 사이에 나오는 첫 번째 "e" 탐색
index = str.IndexOf(searchString, 15, 21); // index == 19

 

Remarks

인덱스 번호는 0부터 시작하고, startIndex 매개변수의 범위는 0에서 문자열 인스턴스의 길이까지다.

탐색은 startIndex에서 시작하여 startIndex + count -1까지 계속된다.

startIndex + count의 문자는 검색에 포함되지 않는다.

compareType 매개 변수는 현재 또는 고정 문화권, 대소문자 구분 또는 대소문자 구분 검색, 단어 또는 서수 비교 규칙을 사용하여 String 매개 변수를 탐색하도록 지정한다.

 

 

 

 

↓ 참고 사이트

https://docs.microsoft.com/en-us/dotnet/api/system.array.indexof?view=net-5.0 

https://docs.microsoft.com/en-us/dotnet/api/system.string.indexof?view=net-5.0 

 

 

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

[C#] 배열에 값을 포함하는지 확인하는 방법  (0) 2021.09.20
[C#] string을 int로 변환하는 방법  (0) 2021.09.20

+ Recent posts