Collection<T>.IndexOf 메서드
2013-03-11
지정된 개체를 검색하고, 전체 Collection<T>에서 처음으로 검색한 개체의 인덱스(0부터 시작)를 반환합니다.
어셈블리: mscorlib(mscorlib.dll)
Collection<T>은 첫 번째 요소에서 시작하여 마지막 요소까지 정방향으로 검색됩니다.
이 메서드는 목록에 있는 값의 형식인 T에 대한 기본 같음 비교자 EqualityComparer<T>.Default를 사용하여 같음 여부를 확인합니다.
이 메서드는 선형 검색을 수행하므로 평균 실행 시간은 Count에 비례합니다. 즉, 이 메서드는 O(n) 연산입니다. 여기서 n은 Count를 나타냅니다.
다음 코드 예제에서는 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 */