Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

String.Compare - метод (String, String, CultureInfo, CompareOptions)

Сравнивает два заданных объекта String, используя указанные параметры сравнения и сведения о языке и региональных параметрах, которые влияют на сравнение, и возвращает целое число, показывающее связь между двумя строками в порядке сортировки.

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

public static int Compare(
	string strA,
	string strB,
	CultureInfo culture,
	CompareOptions options
)

Параметры

strA
Тип: System.String
Первая сравниваемая строка.
strB
Тип: System.String
Вторая сравниваемая строка.
culture
Тип: System.Globalization.CultureInfo
Язык и региональные параметры, которые предоставляют сведения об особенностях сравнения с учетом языка и региональных параметров.
options
Тип: System.Globalization.CompareOptions
Параметры, которые используются во время сравнения (например, игнорирование регистра или символов).

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

Тип: System.Int32
32-битовое знаковое целое число, которое указывает на лексические отношения между strA и strB, как показано в следующей таблице.

Value

Condition

Меньше нуля

Значение параметра strA меньше значения параметра strB.

Zero

Значения параметров strA и strB равны.

Больше нуля.

Значение strA больше значения strB.

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

Значение параметра options не равно значению CompareOptions.

ArgumentNullException

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

При сравнении параметр culture используется для получения сведений, связанных с языком и региональными параметрами, таких как правила учета регистров и алфавитный порядок отдельных символов. Например, язык и региональные параметры могут определять, что определенные сочетания знаков считаются одним знаком, или знаки верхнего и нижнего регистров могут сравниваться определенным образом, или порядок знака при сортировке может зависеть от предшествующих или следующих за ним знаков.

Предупреждающее замечаниеВнимание

Метод Compare(String, String, CultureInfo, CompareOptions) прежде всего предназначается для сортировки или расположения элементов по алфавиту. Он не должен использоваться, если основная цель вызова метода — определить равенство двух строк (т.е. если метод вызывается, чтобы проверить, равно ли возвращаемое значение нулю). Для определения совпадения двух строк следует вызывать метод Equals.

Процедуру сравнения можно уточнить с помощью параметра options, который включает один или несколько элементов перечисления CompareOptions. Однако так как основное предназначение данного метода — выполнить сравнение строк с учетом языка и региональных параметров, значения CompareOptions.Ordinal и CompareOptions.OrdinalIgnoreCase не оказывают влияния.

Одно или оба сравниваемых значения могут быть значениями null. Любая строка, включая String.Empty, по определению считается большей, чем пустая ссылка, а две пустые ссылки считаются равными друг другу.

Процесс сравнения заканчивается, когда встречается неравенство или когда обе строки уже обработаны. Однако если при сравнении двух строк они были равны вплоть до того момента, когда одна из них закончилась, а в другой остались непроверенные знаки, то более длинная строка считается большей.

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

Наборы символов содержат игнорируемые символы, то есть символы, которые не учитываются при выполнении лингвистического сравнения или сравнения с учетом языка и региональных параметров. Метод Compare(String, String, CultureInfo, CompareOptions) не рассматривает такие символы, он выполняет сравнение с учетом языка и региональных параметров. Для распознавания ignorable символы в сравнении укажите значение CompareOptions.Ordinal или CompareOptions.OrdinalIgnoreCase для параметра options.

В следующем примере сравниваются две строки тремя различными способами: с помощью лингвистического сравнения на базе языка и региональных параметров en-US; с помощью лингвистического сравнения с учетом регистра на базе языка и региональных параметров en-US; с помощью сравнения по порядку. Здесь показано, как три метода сравнения дают в итоге разные результаты.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string string1 = "brother";
      string string2 = "Brother";
      string relation;
      int result;

      // Cultural (linguistic) comparison.
      result = String.Compare(string1, string2, new CultureInfo("en-US"), 
                              CompareOptions.None);
      if (result > 0)
         relation = "comes after";
      else if (result == 0)
         relation = "is the same as";
      else
         relation = "comes before";

      Console.WriteLine("'{0}' {1} '{2}'.", 
                        string1, relation, string2);

      // Cultural (linguistic) case-insensitive comparison.
      result = String.Compare(string1, string2, new CultureInfo("en-US"), 
                              CompareOptions.IgnoreCase);
      if (result > 0)
         relation = "comes after";
      else if (result == 0)
         relation = "is the same as";
      else
         relation = "comes before";

      Console.WriteLine("'{0}' {1} '{2}'.", 
                        string1, relation, string2);

       // Culture-insensitive ordinal comparison.
      result = String.CompareOrdinal(string1, string2);
      if (result > 0)
         relation = "comes after";
      else if (result == 0)
         relation = "is the same as";
      else
         relation = "comes before";

      Console.WriteLine("'{0}' {1} '{2}'.", 
                        string1, relation, string2);
   }
}
// The example produces the following output:
//    'brother' comes before 'Brother'.   
//    'brother' is the same as 'Brother'.
//    'brother' comes after 'Brother'.


.NET Framework

Поддерживается в версиях: 4.5.2, 4.5.1, 4.5, 4, 3.5 с пакетом обновления 1 (SP1), 3.0 с пакетом обновления 2 (SP2), 2.0 с пакетом обновления 2 (SP2)

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

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

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

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

Приложения .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.

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

Показ:
© 2015 Microsoft