信息
您所需的主题如下所示。但此主题未包含在此库中。

Collection<T>.IndexOf 方法

2013/12/13

搜索指定的对象,并返回整个 Collection<T> 中第一个匹配项的从零开始的索引。

Namespace:  System.Collections.ObjectModel
程序集:  mscorlib(位于 mscorlib.dll 中)

public int IndexOf(
	T item
)

参数

item
类型: T
要在 List<T> 中查找的对象。对于引用类型,该值可以为 null

返回值

类型: System.Int32
如果在整个 Collection<T> 中找到 item 的第一个匹配项,则为该项的从零开始的索引;否则为 -1。

实现

IList<T>.IndexOf(T)

Collection<T> 的第一个元素开始向前搜索,到最后一个元素停止搜索。

此方法使用用于 T(列表中的值的类型)的默认相等比较器 EqualityComparer<T>.Default 来确定相等性。

此方法执行线性搜索,因此平均执行时间与 Count 成比例。即,此方法为 O(n) 操作,其中 nCount

下面的代码示例演示了 Collection<T> 的很多属性和方法。此代码示例创建一个字符串集合,使用 Add 方法添加若干个字符串,显示 Count,并列出这些字符串。此示例使用 IndexOf 方法查找字符串的索引,并使用 Contains 方法确定集合中是否存在某一字符串。此示例使用 Insert 方法插入字符串,并使用默认的 Item 属性(C# 中的索引器)检索和设置字符串。此示例使用 Remove 方法按字符串标识移除字符串,并使用 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

显示: