Collection<T>.IndexOf 메서드

2013-12-13

지정된 개체를 검색하고, 전체 Collection<T>에서 처음으로 검색한 개체의 인덱스(0부터 시작)를 반환합니다.

Namespace:  System.Collections.ObjectModel
어셈블리:  mscorlib(mscorlib.dll)

public int IndexOf(
	T item
)

매개 변수

item
형식: T
List<T>에서 찾을 개체입니다. 참조 형식에 대한 값이 null일 수 있습니다.

반환 값

형식: System.Int32
전체 Collection<T>에서 맨 처음 나오는 item의 인덱스(0부터 시작)가 있으면 해당 인덱스이고, 그렇지 않으면 -1입니다.

Implements

IList<T>.IndexOf(T)

Collection<T>은 첫 번째 요소에서 시작하여 마지막 요소까지 정방향으로 검색됩니다.

이 메서드는 목록에 있는 값의 형식인 T에 대한 기본 같음 비교자 EqualityComparer<T>.Default를 사용하여 같음 여부를 확인합니다.

이 메서드는 선형 검색을 수행하므로 평균 실행 시간은 Count에 비례합니다. 즉, 이 메서드는 O(n) 연산입니다. 여기서 nCount를 나타냅니다.

다음 코드 예제에서는 Collection<T>의 다양한 속성과 메서드를 보여 줍니다. 이 코드 예제에서는 문자열의 컬렉션을 만들고 Add 메서드를 사용하여 몇 개의 문자열을 추가한 다음 Count를 표시하고 문자열을 나열합니다. 이 예제에서는 IndexOf 메서드를 사용하여 문자열의 인덱스를 찾고 Contains 메서드를 사용하여 컬렉션에 문자열이 있는지 여부를 확인합니다. 이 예제에서는 Insert 메서드를 사용하여 문자열을 삽입하고 기본 Item 속성(C#에서는 인덱서)을 사용하여 문자열을 검색하고 설정합니다. 이 예제에서는 Remove 메서드를 사용하여 문자열 ID를 기준으로 문자열을 제거하고 RemoveAt 메서드를 사용하여 인덱스를 기준으로 문자열을 제거합니다. 마지막으로 Clear 메서드를 사용하여 컬렉션에서 문자열을 모두 지웁니다.


using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Collection<string> dinosaurs = new Collection<string>();

      dinosaurs.Add("Psitticosaurus");
      dinosaurs.Add("Caudipteryx");
      dinosaurs.Add("Compsognathus");
      dinosaurs.Add("Muttaburrasaurus");

      outputBlock.Text += String.Format("{0} dinosaurs:", dinosaurs.Count) + "\n";
      Display(outputBlock, dinosaurs);

      outputBlock.Text += String.Format("\nIndexOf(\"Muttaburrasaurus\"): {0}",
          dinosaurs.IndexOf("Muttaburrasaurus")) + "\n";

      outputBlock.Text += String.Format("\nContains(\"Caudipteryx\"): {0}",
          dinosaurs.Contains("Caudipteryx")) + "\n";

      outputBlock.Text += String.Format("\nInsert(2, \"Nanotyrannus\")") + "\n";
      dinosaurs.Insert(2, "Nanotyrannus");
      Display(outputBlock, dinosaurs);

      outputBlock.Text += String.Format("\ndinosaurs[2]: {0}", dinosaurs[2]) + "\n";

      outputBlock.Text += "\ndinosaurs[2] = \"Microraptor\"" + "\n";
      dinosaurs[2] = "Microraptor";
      Display(outputBlock, dinosaurs);

      outputBlock.Text += "\nRemove(\"Microraptor\")" + "\n";
      dinosaurs.Remove("Microraptor");
      Display(outputBlock, dinosaurs);

      outputBlock.Text += "\nRemoveAt(0)" + "\n";
      dinosaurs.RemoveAt(0);
      Display(outputBlock, dinosaurs);

      outputBlock.Text += "\ndinosaurs.Clear()" + "\n";
      dinosaurs.Clear();
      outputBlock.Text += String.Format("Count: {0}", dinosaurs.Count) + "\n";
   }

   private static void Display(System.Windows.Controls.TextBlock outputBlock, Collection<string> cs)
   {
      outputBlock.Text += "\n";
      foreach (string item in cs)
      {
         outputBlock.Text += item + "\n";
      }
   }
}

/* This code example produces the following output:

4 dinosaurs:

Psitticosaurus
Caudipteryx
Compsognathus
Muttaburrasaurus

IndexOf("Muttaburrasaurus"): 3

Contains("Caudipteryx"): True

Insert(2, "Nanotyrannus")

Psitticosaurus
Caudipteryx
Nanotyrannus
Compsognathus
Muttaburrasaurus

dinosaurs[2]: Nanotyrannus

dinosaurs[2] = "Microraptor"

Psitticosaurus
Caudipteryx
Microraptor
Compsognathus
Muttaburrasaurus

Remove("Microraptor")

Psitticosaurus
Caudipteryx
Compsognathus
Muttaburrasaurus

RemoveAt(0)

Caudipteryx
Compsognathus
Muttaburrasaurus

dinosaurs.Clear()
Count: 0
 */


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시:
© 2014 Microsoft