StringCollection.IndexOf(String) 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
搜索指定的字符串并返回 StringCollection 内的第一个匹配项的从零开始的索引。
public:
 int IndexOf(System::String ^ value);public int IndexOf (string value);public int IndexOf (string? value);member this.IndexOf : string -> intPublic Function IndexOf (value As String) As Integer参数
- value
- String
要定位的字符串。 该值可以为 null。
返回
如果找到,则为 StringCollection 中 value 的第一个匹配项的从零开始的索引;否则为 -1。
示例
下面的代码示例在 中 StringCollection 搜索 元素。
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintValues( IEnumerable^ myCol );
int main()
{
   
   // Creates and initializes a new StringCollection.
   StringCollection^ myCol = gcnew StringCollection;
   array<String^>^myArr = {"RED","orange","yellow","RED","green","blue","RED","indigo","violet","RED"};
   myCol->AddRange( myArr );
   Console::WriteLine( "Initial contents of the StringCollection:" );
   PrintValues( myCol );
   
   // Checks whether the collection contains "orange" and, if so, displays its index.
   if ( myCol->Contains( "orange" ) )
      Console::WriteLine( "The collection contains \"orange\" at index {0}.", myCol->IndexOf( "orange" ) );
   else
      Console::WriteLine( "The collection does not contain \"orange\"." );
}
void PrintValues( IEnumerable^ myCol )
{
   IEnumerator^ myEnum = myCol->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::WriteLine( "   {0}", obj );
   }
   Console::WriteLine();
}
/*
This code produces the following output.
Initial contents of the StringCollection:
   RED
   orange
   yellow
   RED
   green
   blue
   RED
   indigo
   violet
   RED
The collection contains "orange" at index 1.
*/
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesStringCollection  {
   public static void Main()  {
      // Creates and initializes a new StringCollection.
      StringCollection myCol = new StringCollection();
      String[] myArr = new String[] { "RED", "orange", "yellow", "RED", "green", "blue", "RED", "indigo", "violet", "RED" };
      myCol.AddRange( myArr );
      Console.WriteLine( "Initial contents of the StringCollection:" );
      PrintValues( myCol );
      // Checks whether the collection contains "orange" and, if so, displays its index.
      if ( myCol.Contains( "orange" ) )
         Console.WriteLine( "The collection contains \"orange\" at index {0}.", myCol.IndexOf( "orange" ) );
      else
         Console.WriteLine( "The collection does not contain \"orange\"." );
   }
   public static void PrintValues( IEnumerable myCol )  {
      foreach ( Object obj in myCol )
         Console.WriteLine( "   {0}", obj );
      Console.WriteLine();
   }
}
/*
This code produces the following output.
Initial contents of the StringCollection:
   RED
   orange
   yellow
   RED
   green
   blue
   RED
   indigo
   violet
   RED
The collection contains "orange" at index 1.
*/
Imports System.Collections
Imports System.Collections.Specialized
Public Class SamplesStringCollection   
   Public Shared Sub Main()
      ' Creates and initializes a new StringCollection.
      Dim myCol As New StringCollection()
      Dim myArr() As [String] = {"RED", "orange", "yellow", "RED", "green", "blue", "RED", "indigo", "violet", "RED"}
      myCol.AddRange(myArr)
      Console.WriteLine("Initial contents of the StringCollection:")
      PrintValues(myCol)
      ' Checks whether the collection contains "orange" and, if so, displays its index.
      If myCol.Contains("orange") Then
         Console.WriteLine("The collection contains ""orange"" at index {0}.", myCol.IndexOf("orange"))
      Else
         Console.WriteLine("The collection does not contain ""orange"".")
      End If 
   End Sub
   Public Shared Sub PrintValues(myCol As IEnumerable)
      Dim obj As [Object]
      For Each obj In  myCol
         Console.WriteLine("   {0}", obj)
      Next obj
      Console.WriteLine()
   End Sub
End Class
'This code produces the following output.
'
'Initial contents of the StringCollection:
'   RED
'   orange
'   yellow
'   RED
'   green
'   blue
'   RED
'   indigo
'   violet
'   RED
'
'The collection contains "orange" at index 1.
'
注解
此方法通过调用 Object.Equals来确定相等性。 字符串比较区分大小写。
此方法执行线性搜索;因此,此方法是 O (n) 操作,其中 n 为 Count。
从 .NET Framework 2.0 开始,此方法使用 集合的对象 Equals 和 CompareTo 方法item来确定项是否存在。 在早期版本的 .NET Framework中,此确定是通过对集合中的 对象使用 Equals 参数的 item 和 CompareTo 方法做出的。