Экспорт (0) Печать
Развернуть все
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала

String.IndexOf - метод (String, Int32, Int32)

Возвращает индекс с отсчетом от нуля первого вхождения значения указанной строки в данном экземпляре. Поиск начинается с указанной позиции знака; проверяется заданное количество позиций.

Пространство имен:  System
Сборка:  mscorlib (в mscorlib.dll)

public int IndexOf(
	string value,
	int startIndex,
	int count
)

Параметры

value
Тип: System.String
Строка для поиска.
startIndex
Тип: System.Int32
Позиция, с которой начинается поиск.
count
Тип: System.Int32
Количество позиций знаков для проверки.

Возвращаемое значение

Тип: System.Int32
Положение в индексе (начиная с нуля) параметра value, если эта строка найдена, или значение -1, если она не найдена. Если значение параметра value равно String.Empty, возвращаемым значением является startIndex.

ИсключениеУсловие
ArgumentNullException

Параметр value имеет значение null.

ArgumentOutOfRangeException

Значение параметра count или startIndex является отрицательным.

– или –

Параметр startIndex больше, чем длина этой строки.

– или –

count больше, чем длина данной строки минус startIndex.

Нумерация индекса начинается с 0 (ноль). Параметр startIndex может иметь значение в диапазоне от 0 до длины экземпляра строки.

Этот метод выполняет поиск по словам (с учетом регистра и языка и региональных параметров), используя текущий язык и региональные параметры. Поиск начинается с позиции startIndex и продолжается до позиции startIndex + count -1. Позиция знака startIndex + count не включается в поиск.

Наборы символов содержат игнорируемые символы, то есть символы, которые не учитываются при выполнении лингвистического сравнения или сравнения с учетом языка и региональных параметров. Если при поиске с учетом языка и региональных параметров параметр value содержит игнорируемый символ, результат аналогичен поиску с удаленным этим символом. Если value состоит только из одного или нескольких ignorable символов, метод IndexOf(String, Int32, Int32) всегда возвращает startIndex, положение символа, с которой начинается поиск. В следующем примере метод IndexOf(String, Int32, Int32) используется для поиска позиция мягкого дефиса (U+00AD) и «m», в третьих через шестых расположениях символа в 2 строк. Только одна из строк содержит требуемую подстроку. Если пример выполняется на .NET Framework 4 или более поздней версии, в обоих случаях, поскольку мягкий дефис ignorable символ, метод возвращает индекс «m» используется в строке, когда он выполняет сравнение с учетом языка и региональных параметров. Обратите внимание, что в случае первой строки, содержащей мягкий перенос перед буквой "m", этот метод возвращает не индекс мягкого переноса, а индекс буквы "m".


using System;

public class Example
{
   public static void Main()
   {
      string searchString = "\u00ADm";
      string s1 = "ani\u00ADmal" ;
      string s2 = "animal";

      Console.WriteLine(s1.IndexOf(searchString, 2, 4));
      Console.WriteLine(s2.IndexOf(searchString, 2, 4));
   }
}
// The example displays the following output:
//       4
//       3


Примечания к вызывающим объектам

Как описано в разделе Рекомендации по использованию строк в .NET Framework, рекомендуется избегать вызова методов сравнения строк, которые заменяют значения по умолчанию и вместо этого вызывают методы, требующие явного задания параметров. Чтобы использовать правила сравнения текущего языка и региональных параметров для выполнения этой операции, вызовите метод IndexOf(String, Int32, Int32, StringComparison) со значением StringComparison.CurrentCulture в качестве параметра comparisonType.

В следующем примере производится поиск индекса всех вхождений строки "he" в подстроке другой строки. Заметьте, что количество знаков для поиска должно вычисляться заново для каждой итерации поиска.


// Sample for String.IndexOf(String, Int32, Int32)
using System;

class Sample {
    public static void Main() {

    string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-";
    string br2 = "0123456789012345678901234567890123456789012345678901234567890123456";
    string str = "Now is the time for all good men to come to the aid of their party.";
    int start;
    int at;
    int end;
    int count;

    end = str.Length;
    start = end/2;
    Console.WriteLine();
    Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, end-1);
    Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
    Console.Write("The string 'he' occurs at position(s): ");

    count = 0;
    at = 0;
    while((start <= end) && (at > -1))
        {
// start+count must be a position within -str-.
        count = end - start;
        at = str.IndexOf("he", start, count);
        if (at == -1) break;
        Console.Write("{0} ", at);
        start = at+1;
        }
    Console.WriteLine();
    }
}
/*
This example produces the following results:

All occurrences of 'he' from position 33 to 66.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

The string 'he' occurs at position(s): 45 56

*/


.NET Framework

Поддерживается в версиях: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Переносимая библиотека классов

Поддерживается в версии: Переносимая библиотека классов

Приложения .NET для Магазина Windows

Поддерживается в версии: Windows 8

Приложения .NET для Windows Phone

Поддерживается в версиях: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

.NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft