Collection<T>.IndexOf(T) Metoda

Definicja

Wyszukuje określony obiekt i zwraca indeks zerowy pierwszego wystąpienia w całym Collection<T>obiekcie .

C#
public int IndexOf (T item);

Parametry

item
T

Obiekt do zlokalizowania w obiekcie Collection<T>. Wartość może być null przeznaczona dla typów referencyjnych.

Zwraca

Indeks oparty na zerach pierwszego wystąpienia item w całym Collection<T>obiekcie , jeśli zostanie znaleziony; w przeciwnym razie -1.

Implementuje

Przykłady

Poniższy przykład kodu przedstawia wiele właściwości i metod .Collection<T> Przykładowy kod tworzy kolekcję ciągów, używa Add metody , aby dodać kilka ciągów, wyświetla Countciąg i wyświetla ciągi. W przykładzie IndexOf użyto metody do znalezienia indeksu ciągu i Contains metody w celu określenia, czy ciąg znajduje się w kolekcji. Przykład wstawia ciąg przy użyciu Insert metody i pobiera i ustawia ciągi przy użyciu właściwości domyślnej Item[] (indeksator w języku C#). Przykład usuwa ciągi według tożsamości ciągu przy użyciu Remove metody i indeksu RemoveAt przy użyciu metody . Clear Na koniec metoda służy do czyszczenia wszystkich ciągów z kolekcji.

C#
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

public class Demo
{
    public static void Main()
    {
        Collection<string> dinosaurs = new Collection<string>();

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

        Console.WriteLine("{0} dinosaurs:", dinosaurs.Count);
        Display(dinosaurs);

        Console.WriteLine("\nIndexOf(\"Muttaburrasaurus\"): {0}",
            dinosaurs.IndexOf("Muttaburrasaurus"));

        Console.WriteLine("\nContains(\"Caudipteryx\"): {0}",
            dinosaurs.Contains("Caudipteryx"));

        Console.WriteLine("\nInsert(2, \"Nanotyrannus\")");
        dinosaurs.Insert(2, "Nanotyrannus");
        Display(dinosaurs);

        Console.WriteLine("\ndinosaurs[2]: {0}", dinosaurs[2]);

        Console.WriteLine("\ndinosaurs[2] = \"Microraptor\"");
        dinosaurs[2] = "Microraptor";
        Display(dinosaurs);

        Console.WriteLine("\nRemove(\"Microraptor\")");
        dinosaurs.Remove("Microraptor");
        Display(dinosaurs);

        Console.WriteLine("\nRemoveAt(0)");
        dinosaurs.RemoveAt(0);
        Display(dinosaurs);

        Console.WriteLine("\ndinosaurs.Clear()");
        dinosaurs.Clear();
        Console.WriteLine("Count: {0}", dinosaurs.Count);
    }

    private static void Display(Collection<string> cs)
    {
        Console.WriteLine();
        foreach( string item in cs )
        {
            Console.WriteLine(item);
        }
    }
}

/* 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
 */

Uwagi

Element Collection<T> jest wyszukiwany do przodu, zaczynając od pierwszego elementu i kończąc na ostatnim elemecie.

Ta metoda określa równość przy użyciu domyślnego porównywania EqualityComparer<T>.Default równości dla T, typu wartości na liście.

Ta metoda wykonuje wyszukiwanie liniowe; w związku z tym średni czas wykonywania jest proporcjonalny do Count. Oznacza to, że ta metoda jest operacją O(n), gdzie n to Count.

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Zobacz też