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

String - класс

Представляет текст как последовательность знаков Юникода.

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

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class String : IComparable, 
	ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, 
	IEnumerable, IEquatable<string>

Тип String предоставляет следующие члены.

  ИмяОписание
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsString(Char*)Инициализирует новый экземпляр класса String значением, на которое указывает заданный указатель на массив знаков Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsString(Char[])Инициализирует новый экземпляр класса String значением, заданным в виде массива знаков Юникода.
Открытый методПоддерживается платформой XNA FrameworkString(SByte*)Инициализирует новый экземпляр класса String значением, определенным указателем на массив 8-разрядных целых чисел со знаком.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsString(Char, Int32)Инициализирует новый экземпляр класса String значением, полученным путем повторения заданного знака Юникода заданное число раз.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsString(Char*, Int32, Int32)Инициализирует новый экземпляр класса String значением, которое определяется заданным указателем на массив знаков Юникода, начальной позицией знака в этом массиве и длиной.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsString(Char[], Int32, Int32)Инициализирует новый экземпляр класса String значением, заданным массивом знаков Юникода, начальной позицией знака в пределах данного массива и длиной.
Открытый методString(SByte*, Int32, Int32)Инициализирует новый экземпляр класса String значением, определяемым заданным указателем на массив 8-битовых целых чисел со знаком, позицией начальной в пределах данного массива и длиной.
Открытый методString(SByte*, Int32, Int32, Encoding)Инициализирует новый экземпляр класса String значением, определенным заданным указателем на массив 8-разрядных целых чисел со знаком, начальной позицией в пределах данного массива, длиной и объектом Encoding.
В начало страницы

  ИмяОписание
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCharsПолучает объект Char в указанной позиции в текущем объекте String.
Открытое свойствоПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLengthВозвращает число знаков в текущем объекте String.
В начало страницы

  ИмяОписание
Открытый методПоддерживается платформой XNA FrameworkCloneВозвращает ссылку на данный экземпляр класса String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompare(String, String)Сравнивает два указанных объекта String и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkCompare(String, String, Boolean)Сравнивает два заданных объекта String (с учетом или без учета регистра) и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompare(String, String, StringComparison)Сравнивает два указанных объекта String с использованием заданных правил и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkCompare(String, String, Boolean, CultureInfo)Сравнивает два заданных объекта String (с учетом или без учета регистра), используя сведения о языке и региональных параметрах, и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовCompare(String, String, CultureInfo, CompareOptions)Сравнивает два заданных объекта String, используя указанные параметры сравнения и сведения о языке и региональных параметрах, которые влияют на сравнение, и возвращает целое число, показывающее связь между двумя строками в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompare(String, Int32, String, Int32, Int32)Сравнивает подстроки двух указанных объектов String и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkCompare(String, Int32, String, Int32, Int32, Boolean)Сравнивает подстроки двух заданных объектов String (с учетом или без учета регистра) и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompare(String, Int32, String, Int32, Int32, StringComparison)Сравнивает подстроки двух указанных объектов String с использованием заданных правил и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkCompare(String, Int32, String, Int32, Int32, Boolean, CultureInfo)Сравнивает подстроки двух заданных объектов String (с учетом или без учета регистра), используя сведения о языке и региональных параметрах, и возвращает целое число, которое показывает их относительное положение в порядке сортировки.
Открытый методСтатический членCompare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)Сравнивает подстроки двух заданных объектов String, используя указанные параметры сравнения и сведения о языке и региональных параметрах, которые влияют на сравнение, и возвращает целое число, показывающее связь между двумя подстроками в порядке сортировки.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompareOrdinal(String, String)Сравнивает два заданных объекта String, оценивая числовые значения соответствующих объектов Char в каждой строке.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompareOrdinal(String, Int32, String, Int32, Int32)Сравнивает подстроки двух заданных объектов String, вычисляя числовые значения соответствующих объектов Char в каждой подстроке.
Открытый методПоддерживается платформой XNA FrameworkCompareTo(Object)Сравнивает данный экземпляр с заданным объектом Object и показывает, расположен ли данный экземпляр перед, после или на той же позиции в порядке сортировки, что и заданный объект Object.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCompareTo(String)Сравнивает данный экземпляр с заданным объектом String и показывает, расположен ли данный экземпляр перед, после или на той же позиции в порядке сортировки, что и заданный объект String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(Object)Создает строковое представление указанного объекта.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(Object[])Сцепляет строковые представления элементов указанного массива Object.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(IEnumerable<String>)Сцепляет элементы созданной коллекции IEnumerable<T> типа String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(String[])Сцепляет элементы указанного массива String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(Object, Object)Сцепляет строковые представления двух указанных объектов.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(String, String)Сцепляет два указанных экземпляра String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(Object, Object, Object)Сцепляет строковые представления трех указанных объектов.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(String, String, String)Сцепляет три указанных экземпляра String.
Открытый методСтатический членConcat(Object, Object, Object, Object)Сцепляет строковые представления четырех указанных объектов и любые объекты, заданные в необязательном списке параметров переменной длины.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat(String, String, String, String)Сцепляет четыре указанных экземпляра String.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsConcat<T>(IEnumerable<T>)Сцепляет элементы реализации IEnumerable<T>.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsContains Возвращает значение, указывающее, содержит ли указанная строка значение подстроки переданной в качестве параметра.
Открытый методСтатический членПоддерживается платформой XNA FrameworkCopyСоздает новый экземпляр String, имеющий то же значение, что и заданный экземпляр String.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCopyTo Копирует указанное число символов начиная с указанной позиции в данном экземпляре в указанную позицию массива символов Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEndsWith(String)Определяет, совпадает ли конец данного экземпляра строки с указанной строкой.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEndsWith(String, StringComparison)Определяет, совпадает ли конец экземпляра строки с заданной строкой при сравнении с учетом заданного параметра сравнения.
Открытый методEndsWith(String, Boolean, CultureInfo)Определяет, совпадает ли конец данного экземпляра строки с заданной строкой при сравнении с учетом заданного языка и региональных параметров.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEquals(Object)Определяет, равны ли значения этого экземпляра и указанного объекта, который также должен быть объектом String. (Переопределяет Object.Equals(Object).)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEquals(String)Определяет равны ли значения этого экземпляра и указанного объекта String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEquals(String, String)Определяет, равны ли значения двух указанных объектов String.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEquals(String, StringComparison)Определяет, равны ли значения этой строки и указанного объекта String. Параметр определяет язык и региональные параметры, учет регистра и правила сортировки, используемые при сравнении.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEquals(String, String, StringComparison)Определяет, равны ли значения двух указанных объектов String. Параметр определяет язык и региональные параметры, учет регистра и правила сортировки, используемые при сравнении.
Открытый методСтатический членПоддерживается платформой XNA FrameworkFormat(String, Object)Заменяет один или более элементов формата в указанной строке строковым представлением указанного объекта.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsFormat(String, Object[])Заменяет элемент формата в указанной строке строковым представлением соответствующего объекта в указанном массиве.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsFormat(IFormatProvider, String, Object[])Заменяет элементы формата в указанной строке строковым представлениями соответствующих объектов в указанном массиве. Параметр предоставляет сведения об особенностях форматирования, связанных с языком и региональными параметрами.
Открытый методСтатический членПоддерживается платформой XNA FrameworkFormat(String, Object, Object)Заменяет элементы формата в указанной строке строковым представлением двух указанных объектов.
Открытый методСтатический членПоддерживается платформой XNA FrameworkFormat(String, Object, Object, Object)Заменяет элементы формата в указанной строке строковым представлением трех указанных объектов.
Открытый методПоддерживается платформой XNA FrameworkGetEnumeratorИзвлекает объект, который может выполнять итерацию отдельных знаков данной строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetHashCodeВозвращает хэш-код для этой строки. (Переопределяет Object.GetHashCode().)
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsGetType Возвращает объект класса Type для текущего экземпляра. (Унаследовано от Object.)
Открытый методПоддерживается платформой XNA FrameworkGetTypeCodeВозвращает TypeCode для класса String.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(Char)Возвращает индекс с отсчетом от нуля первого вхождения указанного символа Юникода в данной строке.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(String)Возвращает индекс с отсчетом от нуля первого вхождения значения указанной строки в данном экземпляре.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(Char, Int32)Возвращает индекс с отсчетом от нуля первого вхождения указанного символа Юникода в данной строке. Поиск начинается с указанной позиции знака.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(String, Int32)Возвращает индекс с отсчетом от нуля первого вхождения значения указанной строки в данном экземпляре. Поиск начинается с указанной позиции знака.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(String, StringComparison)Возвращает индекс с отсчетом от нуля первого вхождения указанной строки в текущем объекте String. Параметр определяет тип поиска заданной строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(Char, Int32, Int32)Возвращает индекс с отсчетом от нуля первого вхождения указанного символа в данном экземпляре. Поиск начинается с указанной позиции знака; проверяется заданное количество позиций.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(String, Int32, Int32)Возвращает индекс с отсчетом от нуля первого вхождения значения указанной строки в данном экземпляре. Поиск начинается с указанной позиции знака; проверяется заданное количество позиций.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(String, Int32, StringComparison)Возвращает индекс с отсчетом от нуля первого вхождения указанной строки в текущем объекте String. Параметры задают начальную позицию поиска в текущей строке и тип поиска.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOf(String, Int32, Int32, StringComparison)Возвращает индекс с отсчетом от нуля первого вхождения указанной строки в текущем объекте String. Параметры задают начальную позицию поиска в текущей строке, количество проверяемых знаков текущей строки и тип поиска.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOfAny(Char[])Возвращает индекс с отсчетом от нуля первого обнаруженного в данном экземпляре символа из указанного массива символов Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOfAny(Char[], Int32)Возвращает индекс с отсчетом от нуля первого обнаруженного в данном экземпляре символа из указанного массива символов Юникода. Поиск начинается с указанной позиции знака.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIndexOfAny(Char[], Int32, Int32)Возвращает индекс с отсчетом от нуля первого обнаруженного в данном экземпляре символа из указанного массива символов Юникода. Поиск начинается с указанной позиции знака; проверяется заданное количество позиций.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsInsertВозвращает новую строку, в которой указанная строка вставляется на указанной позиции индекса в данном экземпляре.
Открытый методСтатический членПоддерживается платформой XNA FrameworkInternИзвлекает системную ссылку на указанный объект String.
Открытый методСтатический членПоддерживается платформой XNA FrameworkIsInternedИзвлекает ссылку на указанный объект String.
Открытый методIsNormalized()Указывает, находится ли данная строка в форме нормализации Юникода C.
Открытый методIsNormalized(NormalizationForm)Указывает, находится ли данная строка в заданной форме нормализации Юникода.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIsNullOrEmptyУказывает, действительно ли указанная строка является строкой null или Empty.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIsNullOrWhiteSpaceУказывает, является ли указанная строка значением null, пустой строкой или строкой, состоящей только из пробельных символов.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsJoin(String, IEnumerable<String>)Сцепляет элементы созданной коллекции IEnumerable<T> типа String, помещая между ними заданный разделитель.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsJoin(String, Object[])Сцепляет элементы массива объектов, помещая между ними заданный разделитель.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsJoin(String, String[])Сцепляет все элементы массива строк, помещая между ними заданный разделитель.
Открытый методСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsJoin(String, String[], Int32, Int32)Сцепляет указанные элементы массива строк, помещая между ними заданный разделитель.
Открытый методСтатический членПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsJoin<T>(String, IEnumerable<T>)Сцепляет элементы созданной коллекции, помещая между ними заданный разделитель.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(Char)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанного символа Юникода в пределах данного экземпляра.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(String)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанной строки в данном экземпляре.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(Char, Int32)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанного символа Юникода в пределах данного экземпляра. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(String, Int32)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанной строки в данном экземпляре. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(String, StringComparison)Возвращает индекс с отсчетом от нуля последнего вхождения указанной строки в текущем объекте String. Параметр определяет тип поиска заданной строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(Char, Int32, Int32)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанного символа Юникода в подстроке в пределах данного экземпляра. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки для заданного числа позиций символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(String, Int32, Int32)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанной строки в данном экземпляре. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки для заданного числа позиций символов.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(String, Int32, StringComparison)Возвращает индекс с отсчетом от нуля последнего вхождения указанной строки в текущем объекте String. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки. Параметр определяет тип сравнения для выполнения во время поиска заданной строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOf(String, Int32, Int32, StringComparison)Возвращает позицию индекса с отсчетом от нуля последнего вхождения указанной строки в данном экземпляре. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки для заданного числа позиций символов. Параметр определяет тип сравнения для выполнения во время поиска заданной строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOfAny(Char[])Возвращает позицию индекса с отсчетом от нуля последнего вхождения в данном экземпляре какого-либо одного или нескольких символов, указанных в массиве символов Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOfAny(Char[], Int32)Возвращает позицию индекса с отсчетом от нуля последнего вхождения в данном экземпляре какого-либо одного или нескольких символов, указанных в массиве символов Юникода. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsLastIndexOfAny(Char[], Int32, Int32)Возвращает позицию индекса с отсчетом от нуля последнего вхождения в данном экземпляре какого-либо одного или нескольких символов, указанных в массиве символов Юникода. Поиск начинается с указанной позиции символа и выполняется в обратном направлении до начала строки для заданного числа позиций символов.
Открытый методNormalize()Возвращает новую строку, текстовое значение которой совпадает с данной строкой, а двоичное представление находится в нормализованной форме C Юникода.
Открытый методNormalize(NormalizationForm)Возвращает новую строку, текстовое значение которой совпадает с данной строкой, а двоичное представление находится в заданной нормализованной форме Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsPadLeft(Int32)Возвращает новую строку, в которой знаки данного экземпляра выровнены по правому краю путем добавления слева пробелов до указанной общей длины.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsPadLeft(Int32, Char)Возвращает новую строку, в которой знаки данного экземпляра выровнены по правому краю путем добавления слева пробелов или указанного знака Юникода до указанной общей длины.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsPadRight(Int32)Возвращает новую строку, в которой знаки данной строки выровнены по левому краю путем добавления справа пробелов до указанной общей длины.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsPadRight(Int32, Char)Возвращает новую строку, в которой знаки данной строки выровнены по левому краю путем добавления справа пробелов или указанного знака Юникода до указанной общей длины.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsRemove(Int32)Возвращает новую строку, в которой были удалены все символы, начиная с указанной позиции и до конца в текущем экземпляре.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsRemove(Int32, Int32)Возвращает новую строку, в которой было удалено указанное число символов в указанной позиции.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsReplace(Char, Char)Возвращает новую строку, в которой все вхождения заданного знака Юникода в текущем экземпляре заменены другим заданным знаком Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsReplace(String, String)Возвращает новую строку, в которой все вхождения заданной строки в текущем экземпляре заменены другой заданной строкой.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSplit(Char[])Возвращает строковый массив, содержащий подстроки данного экземпляра, разделенные элементами заданного массива знаков Юникода.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSplit(Char[], Int32)Возвращает строковый массив, содержащий подстроки данного экземпляра, разделенные элементами заданного массива знаков Юникода. Параметр указывает максимальное число возвращаемых подстрок.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSplit(Char[], StringSplitOptions)Возвращает строковый массив, содержащий подстроки данной строки, разделенные элементами заданного массива знаков Юникода. Параметр указывает, следует ли возвращать пустые элементы массива.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSplit(String[], StringSplitOptions)Возвращает строковый массив, содержащий подстроки данной строки, разделенные элементами заданного массива строк. Параметр указывает, следует ли возвращать пустые элементы массива.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSplit(Char[], Int32, StringSplitOptions)Возвращает строковый массив, содержащий подстроки данной строки, разделенные элементами заданного массива знаков Юникода. Параметры задают максимальное количество возвращаемых подстрок и значение, указывающее, следует ли возвращать пустые элементы массива.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSplit(String[], Int32, StringSplitOptions)Возвращает строковый массив, содержащий подстроки данной строки, разделенные элементами заданного массива строк. Параметры задают максимальное количество возвращаемых подстрок и значение, указывающее, следует ли возвращать пустые элементы массива.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsStartsWith(String)Определяет, совпадает ли начало данного экземпляра строки с указанной строкой.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsStartsWith(String, StringComparison)Определяет, совпадает ли начало этого экземпляра строки с заданной строкой при сравнении с учетом заданного параметра сравнения.
Открытый методStartsWith(String, Boolean, CultureInfo)Определяет, совпадает ли начало экземпляра строки с заданной строкой при сравнении с учетом заданного языка и региональных параметров.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSubstring(Int32)Извлекает подстроку из данного экземпляра. Подстрока начинается в указанном положении символов и продолжается до конца строки.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsSubstring(Int32, Int32)Извлекает подстроку из данного экземпляра. Подстрока начинается с указанной позиции знака и имеет указанную длину.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToCharArray()Копирует знаки данного экземпляра в массив знаков Юникода.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToCharArray(Int32, Int32)Копирует знаки из указанной подстроки данного экземпляра в массив знаков Юникода.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToLower() Возвращает копию данной строки, переведенную в нижний регистр.
Открытый методПоддерживается платформой XNA FrameworkToLower(CultureInfo)Возвращает копию этой строки, переведенную в нижний регистр, используя правила определения регистра заданного языка и региональных параметров.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToLowerInvariantВозвращает копию этого объекта String, переведенную в нижний регистр, используя правила учета регистра инвариантного языка и региональных параметров.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToString()Возвращает этот экземпляр String; реальное преобразование не осуществляется. (Переопределяет Object.ToString().)
Открытый методПоддерживается платформой XNA FrameworkToString(IFormatProvider)Возвращает этот экземпляр String; реальное преобразование не осуществляется.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToUpper()Возвращает копию этой строки, переведенную в верхний регистр.
Открытый методПоддерживается платформой XNA FrameworkToUpper(CultureInfo)Возвращает копию этой строки, переведенную в верхний регистр, используя правила определения регистра заданного языка и региональных параметров.
Открытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsToUpperInvariantВозвращает копию этого объекта String, переведенную в верхний регистр, используя правила учета регистра инвариантного языка и региональных параметров.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsTrim()Удаляет все начальные и конечные знаки пробела из текущего объекта String.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsTrim(Char[])Удаляет все начальные и конечные вхождения набора знаков, заданного в виде массива, из текущего объекта String.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsTrimEndУдаляет все конечные вхождения набора знаков, заданного в виде массива, из текущего объекта String.
Открытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsTrimStartУдаляет все начальные вхождения набора знаков, заданного в виде массива, из текущего объекта String.
В начало страницы

  ИмяОписание
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEqualityОпределяет, равны ли значения двух указанных строк.
Открытый операторСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsInequalityОпределяет, различаются ли значения двух указанных строк.
В начало страницы

  ИмяОписание
Открытый метод расширенияПоддерживается платформой XNA FrameworkAggregate<Char>(Func<Char, Char, Char>)Перегружен. Применяет к последовательности агрегатную функцию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAggregate<Char, TAccumulate>(TAccumulate, Func<TAccumulate, Char, TAccumulate>)Перегружен. Применяет к последовательности агрегатную функцию. Указанное начальное значение используется в качестве исходного значения агрегатной операции. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAggregate<Char, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, Char, TAccumulate>, Func<TAccumulate, TResult>)Перегружен. Применяет к последовательности агрегатную функцию. Указанное начальное значение служит исходным значением для агрегатной операции, а указанная функция используется для выбора результирующего значения. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAll<Char>Проверяет, все ли элементы последовательности удовлетворяют условию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAny<Char>()Перегружен. Проверяет, содержит ли последовательность какие-либо элементы. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAny<Char>(Func<Char, Boolean>)Перегружен. Проверяет, удовлетворяет ли какой-либо элемент последовательности заданному условию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAsEnumerable<Char>Возвращает входные данные, приведенные к типу IEnumerable<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsAsParallel()Перегружен. Позволяет осуществлять параллельный запрос. (Определено в ParallelEnumerable.)
Открытый метод расширенияAsParallel<Char>()Перегружен. Позволяет осуществлять параллельный запрос. (Определено в ParallelEnumerable.)
Открытый метод расширенияПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsAsQueryable()Перегружен. Преобразовывает коллекцию IEnumerable в IQueryable. (Определено в Queryable.)
Открытый метод расширенияAsQueryable<Char>()Перегружен. Преобразовывает универсальный объект IEnumerable<T> в универсальный объект IQueryable<T>. (Определено в Queryable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Int32>)Перегружен. Вычисляет среднее для последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Nullable<Int32>>)Перегружен. Вычисляет среднее для последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Int64>)Перегружен. Вычисляет среднее для последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Nullable<Int64>>)Перегружен. Вычисляет среднее для последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Single>)Перегружен. Вычисляет среднее для последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Nullable<Single>>)Перегружен. Вычисляет среднее для последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Double>)Перегружен. Вычисляет среднее для последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Nullable<Double>>)Перегружен. Вычисляет среднее для последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Decimal>)Перегружен. Вычисляет среднее для последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkAverage<Char>(Func<Char, Nullable<Decimal>>)Перегружен. Вычисляет среднее для последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsCast<TResult>Приводит элементы объекта IEnumerable к заданному типу. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkConcat<Char>Объединяет две последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkContains<Char>(Char)Перегружен. Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkContains<Char>(Char, IEqualityComparer<Char>)Перегружен. Определяет, содержит ли последовательность заданный элемент, используя указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkCount<Char>()Перегружен. Возвращает количество элементов в последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkCount<Char>(Func<Char, Boolean>)Перегружен. Возвращает число, представляющее количество элементов последовательности, удовлетворяющих заданному условию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkDefaultIfEmpty<Char>()Перегружен. Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую значение параметра типа по умолчанию, если последовательность пуста. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkDefaultIfEmpty<Char>(Char)Перегружен. Возвращает элементы указанной последовательности или одноэлементную коллекцию, содержащую указанное значение, если последовательность пуста. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkDistinct<Char>()Перегружен. Возвращает различающиеся элементы последовательности, используя для сравнения значений компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkDistinct<Char>(IEqualityComparer<Char>)Перегружен. Возвращает различающиеся элементы последовательности, используя для сравнения значений указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkElementAt<Char>Возвращает элемент по указанному индексу в последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkElementAtOrDefault<Char>Возвращает элемент по указанному индексу в последовательности или значение по умолчанию, если индекс вне допустимого диапазона. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkExcept<Char>(IEnumerable<Char>)Перегружен. Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkExcept<Char>(IEnumerable<Char>, IEqualityComparer<Char>)Перегружен. Находит разность множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkFirst<Char>()Перегружен. Возвращает первый элемент последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkFirst<Char>(Func<Char, Boolean>)Перегружен. Возвращает первый элемент последовательности, удовлетворяющий указанному условию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkFirstOrDefault<Char>()Перегружен. Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkFirstOrDefault<Char>(Func<Char, Boolean>)Перегружен. Возвращает первый удовлетворяющий условию элемент последовательности или значение по умолчанию, если ни одного такого элемента не найдено. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey>(Func<Char, TKey>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и сравнивает ключи с помощью указанного компаратора. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и проецирует элементы каждой группы с помощью указанной функции. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey, TResult>(Func<Char, TKey>, Func<TKey, IEnumerable<Char>, TResult>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)Перегружен. Группирует элементы последовательности в соответствии с функцией селектора ключа. Ключи сравниваются с помощью компаратора, элементы каждой группы проецируются с помощью указанной функции. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey, TResult>(Func<Char, TKey>, Func<TKey, IEnumerable<Char>, TResult>, IEqualityComparer<TKey>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Ключи сравниваются с использованием заданного компаратора. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey, TElement, TResult>(Func<Char, TKey>, Func<Char, TElement>, Func<TKey, IEnumerable<TElement>, TResult>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Элементы каждой группы проецируются с помощью указанной функции. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupBy<Char, TKey, TElement, TResult>(Func<Char, TKey>, Func<Char, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)Перегружен. Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Значения ключей сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, IEnumerable<TInner>, TResult>)Перегружен. Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkGroupJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)Перегружен. Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkIntersect<Char>(IEnumerable<Char>)Перегружен. Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkIntersect<Char>(IEnumerable<Char>, IEqualityComparer<Char>)Перегружен. Находит пересечение множеств, представленных двумя последовательностями, используя для сравнения значений указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, TInner, TResult>)Перегружен. Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей. Для сравнения ключей используется компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, TInner, TResult>, IEqualityComparer<TKey>)Перегружен. Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей. Для сравнения ключей используется указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkLast<Char>()Перегружен. Возвращает последний элемент последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkLast<Char>(Func<Char, Boolean>)Перегружен. Возвращает последний элемент последовательности, удовлетворяющий указанному условию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkLastOrDefault<Char>()Перегружен. Возвращает последний элемент последовательности или значение по умолчанию, если последовательность не содержит элементов. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkLastOrDefault<Char>(Func<Char, Boolean>)Перегружен. Возвращает последний элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkLongCount<Char>()Перегружен. Возвращает значение типа Int64, представляющее общее число элементов в последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkLongCount<Char>(Func<Char, Boolean>)Перегружен. Возвращает значение типа Int64, представляющее число элементов последовательности, удовлетворяющих заданному условию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>()Перегружен. Возвращает максимальное значение, содержащееся в универсальной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Int32>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Int32. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Nullable<Int32>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Int32 обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Int64>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Int64. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Nullable<Int64>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Int64 обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Single>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Single. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Nullable<Single>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Single обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Double>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Double. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Nullable<Double>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Double обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Decimal>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Decimal. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char>(Func<Char, Nullable<Decimal>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Decimal обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMax<Char, TResult>(Func<Char, TResult>)Перегружен. Вызывает функцию преобразования для каждого элемента универсальной последовательности и возвращает максимальное результирующее значение. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>()Перегружен. Возвращает минимальное значение, содержащееся в универсальной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Int32>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Int32. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Nullable<Int32>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Int32 обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Int64>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Int64. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Nullable<Int64>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Int64 обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Single>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Single. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Nullable<Single>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Single обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Double>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Double. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Nullable<Double>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Double обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Decimal>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Decimal. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char>(Func<Char, Nullable<Decimal>>)Перегружен. Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Decimal обнуляемого типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkMin<Char, TResult>(Func<Char, TResult>)Перегружен. Вызывает функцию преобразования для каждого элемента универсальной последовательности и возвращает минимальное результирующее значение. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsOfType<TResult>Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkOrderBy<Char, TKey>(Func<Char, TKey>)Перегружен. Сортирует элементы последовательности в порядке возрастания ключа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkOrderBy<Char, TKey>(Func<Char, TKey>, IComparer<TKey>)Перегружен. Сортирует элементы последовательности в порядке возрастания с использованием указанного компаратора. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkOrderByDescending<Char, TKey>(Func<Char, TKey>)Перегружен. Сортирует элементы последовательности в порядке убывания ключа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkOrderByDescending<Char, TKey>(Func<Char, TKey>, IComparer<TKey>)Перегружен. Сортирует элементы последовательности в порядке убывания с использованием указанного компаратора. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkReverse<Char>Изменяет порядок элементов последовательности на противоположный. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSelect<Char, TResult>(Func<Char, TResult>)Перегружен. Проецирует каждый элемент последовательности в новую форму. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSelect<Char, TResult>(Func<Char, Int32, TResult>)Перегружен. Проецирует каждый элемент последовательности в новую форму, добавляя индекс элемента. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSelectMany<Char, TResult>(Func<Char, IEnumerable<TResult>>)Перегружен. Проецирует каждый элемент последовательности в объект IEnumerable<T> и объединяет результирующие последовательности в одну последовательность. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSelectMany<Char, TResult>(Func<Char, Int32, IEnumerable<TResult>>)Перегружен. Проецирует каждый элемент последовательности в объект IEnumerable<T> и объединяет результирующие последовательности в одну последовательность. Индекс каждого элемента исходной последовательности используется в проецированной форме этого элемента. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSelectMany<Char, TCollection, TResult>(Func<Char, Int32, IEnumerable<TCollection>>, Func<Char, TCollection, TResult>)Перегружен. Проецирует каждый элемент последовательности в объект IEnumerable<T>, объединяет результирующие последовательности в одну и вызывает функцию селектора результата для каждого элемента этой последовательности. Индекс каждого элемента исходной последовательности используется в промежуточной проецированной форме этого элемента. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSelectMany<Char, TCollection, TResult>(Func<Char, IEnumerable<TCollection>>, Func<Char, TCollection, TResult>)Перегружен. Проецирует каждый элемент последовательности в объект IEnumerable<T>, объединяет результирующие последовательности в одну и вызывает функцию селектора результата для каждого элемента этой последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSequenceEqual<Char>(IEnumerable<Char>)Перегружен. Определяет, совпадают ли две последовательности, используя для сравнения элементов компаратор проверки на равенство по умолчанию, предназначенный для их типа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSequenceEqual<Char>(IEnumerable<Char>, IEqualityComparer<Char>)Перегружен. Определяет, совпадают ли две последовательности, используя для сравнения элементов указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSingle<Char>()Перегружен. Возвращает единственный элемент последовательности и генерирует исключение, если число элементов последовательности отлично от 1. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSingle<Char>(Func<Char, Boolean>)Перегружен. Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, и генерирует исключение, если таких элементов больше одного. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSingleOrDefault<Char>()Перегружен. Возвращает единственный элемент последовательности или значение по умолчанию, если последовательность пуста; если в последовательности более одного элемента, генерируется исключение. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSingleOrDefault<Char>(Func<Char, Boolean>)Перегружен. Возвращает единственный элемент последовательности, удовлетворяющий заданному условию, или значение по умолчанию, если такого элемента не существует; если условию удовлетворяет более одного элемента, генерируется исключение. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSkip<Char>Пропускает заданное число элементов в последовательности и возвращает остальные элементы. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSkipWhile<Char>(Func<Char, Boolean>)Перегружен. Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSkipWhile<Char>(Func<Char, Int32, Boolean>)Перегружен. Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. Индекс элемента используется в логике функции предиката. (Определено в Enumerable.)
Открытый метод расширенияSubscribe<Char>(IObserver<Char>)Перегружен. (Определено в Observable.)
Открытый метод расширенияSubscribe<Char>(IObserver<Char>, IScheduler)Перегружен. (Определено в Observable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Int32>)Перегружен. Вычисляет сумму последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Nullable<Int32>>)Перегружен. Вычисляет сумму последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Int64>)Перегружен. Вычисляет сумму последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Nullable<Int64>>)Перегружен. Вычисляет сумму последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Single>)Перегружен. Вычисляет сумму последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Nullable<Single>>)Перегружен. Вычисляет сумму последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Double>)Перегружен. Вычисляет сумму последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Nullable<Double>>)Перегружен. Вычисляет сумму последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Decimal>)Перегружен. Вычисляет сумму последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkSum<Char>(Func<Char, Nullable<Decimal>>)Перегружен. Вычисляет сумму последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkTake<Char>Возвращает указанное число подряд идущих элементов с начала последовательности. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkTakeWhile<Char>(Func<Char, Boolean>)Перегружен. Возвращает цепочку элементов последовательности, до тех пор, пока условие истинно. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkTakeWhile<Char>(Func<Char, Int32, Boolean>)Перегружен. Возвращает цепочку элементов последовательности, до тех пор, пока условие истинно. Индекс элемента используется в логике функции предиката. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToArray<Char>Создает массив из объекта IEnumerable<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToDictionary<Char, TKey>(Func<Char, TKey>)Перегружен. Создает словарь Dictionary<TKey, TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToDictionary<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)Перегружен. Создает словарь Dictionary<TKey, TValue> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа и компаратором ключей. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToDictionary<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)Перегружен. Создает словарь Dictionary<TKey, TValue> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToDictionary<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)Перегружен. Создает словарь Dictionary<TKey, TValue> из объекта IEnumerable<T> в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToList<Char>Создает список List<T> из объекта IEnumerable<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToLookup<Char, TKey>(Func<Char, TKey>)Перегружен. Создает объект Lookup<TKey, TElement> из коллекции IEnumerable<T> в соответствии с заданной функцией выбора ключа. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToLookup<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)Перегружен. Создает объект Lookup<TKey, TElement> из объекта IEnumerable<T> в соответствии с заданной функцией селектора ключа и компаратором ключей. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToLookup<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)Перегружен. Создает объект Lookup<TKey, TElement> из объекта IEnumerable<T> в соответствии с заданными функциями селектора ключа и селектора элемента. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkToLookup<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)Перегружен. Создает объект Lookup<TKey, TElement> из объекта IEnumerable<T> в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента. (Определено в Enumerable.)
Открытый метод расширенияToObservable<Char>()Перегружен. (Определено в Observable.)
Открытый метод расширенияToObservable<Char>(IScheduler)Перегружен. (Определено в Observable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkUnion<Char>(IEnumerable<Char>)Перегружен. Находит объединение множеств, представленных двумя последовательностями, используя для сравнения значений компаратор проверки на равенство по умолчанию. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkUnion<Char>(IEnumerable<Char>, IEqualityComparer<Char>)Перегружен. Находит объединение множеств, представленных двумя последовательностями, используя указанный компаратор IEqualityComparer<T>. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkWhere<Char>(Func<Char, Boolean>)Перегружен. Выполняет фильтрацию последовательности значений на основе заданного предиката. (Определено в Enumerable.)
Открытый метод расширенияПоддерживается платформой XNA FrameworkWhere<Char>(Func<Char, Int32, Boolean>)Перегружен. Выполняет фильтрацию последовательности значений на основе заданного предиката. Индекс каждого элемента используется в логике функции предиката. (Определено в Enumerable.)
Открытый метод расширенияZip<Char, TSecond, TResult>Применяет указанную функцию к соответствующим элементам двух последовательностей, что дает последовательность результатов. (Определено в Enumerable.)
В начало страницы

  ИмяОписание
Открытое полеСтатический членПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsEmptyПредставляет пустую строку. Это поле доступно только для чтения.
В начало страницы

  ИмяОписание
Явная реализация интерфейсаЗакрытый методПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIComparable.CompareToСравнивает текущий экземпляр с другим объектом того же типа и возвращает целое число, которое показывает, расположен ли текущий экземпляр перед, после или на той же позиции в порядке сортировки, что и другой объект.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToBooleanИнфраструктура. Описание этого элемента см. в разделе, посвященном ToBoolean.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToByteИнфраструктура. Описание этого элемента см. в разделе, посвященном ToByte.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToCharИнфраструктура. Описание этого элемента см. в разделе, посвященном ToChar.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToDateTimeИнфраструктура. Описание этого элемента см. в разделе, посвященном ToDateTime.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToDecimalИнфраструктура. Описание этого элемента см. в разделе, посвященном ToDecimal.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToDoubleИнфраструктура. Описание этого элемента см. в разделе, посвященном ToDouble.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToInt16Инфраструктура. Описание этого элемента см. в разделе, посвященном ToInt16.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToInt32Инфраструктура. Описание этого элемента см. в разделе, посвященном ToInt32.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToInt64Инфраструктура. Описание этого элемента см. в разделе, посвященном ToInt64.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToSByteИнфраструктура. Описание этого элемента см. в разделе, посвященном ToSByte.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToSingleИнфраструктура. Описание этого элемента см. в разделе, посвященном ToSingle.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToTypeИнфраструктура. Описание этого элемента см. в разделе, посвященном ToType.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToUInt16Инфраструктура. Описание этого элемента см. в разделе, посвященном ToUInt16.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToUInt32Инфраструктура. Описание этого элемента см. в разделе, посвященном ToUInt32.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIConvertible.ToUInt64Инфраструктура. Описание этого элемента см. в разделе, посвященном ToUInt64.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkIEnumerable<Char>.GetEnumeratorВозвращает перечислитель, выполняющий перебор элементов текущего объекта String.
Явная реализация интерфейсаЗакрытый методПоддерживается платформой XNA FrameworkПоддерживается в Переносимая библиотека классовПоддерживается в версии: Приложения .NET для Магазина WindowsIEnumerable.GetEnumeratorВозвращает перечислитель, выполняющий перебор элементов текущего объекта String.
В начало страницы

Строка является упорядоченной коллекцией символов Юникода, используемой для представления текста. Объект String является упорядоченной коллекцией объектов System.Char, представляющей строку. Значением объекта String является содержимое упорядоченной коллекции, и это значение является неизменяемым (т. е. доступным только для чтения). Дополнительные сведения о неизменность строк см. в разделе Неизменность и класс StringBuilder далее в этом разделе. Максимальный размер объекта String в 2 ГБ памяти, или около 1 миллиард символов.

В данном разделе:

Создание экземпляра объекта строки
Объекты и символы юникода char
Строки и вставленные нули-символы
Строки и индексы
Значения NULL и пустые строки строки
Неизменность и класс StringBuilder
Порядковый номер и операций с учетом языка и региональных параметров
Нормализация
Операции со строками по категориям

Создание экземпляра объекта строки

Новый экземпляр объекта String можно создать следующими способами:

  • Путем присвоения строкового литерала переменной String. Это наиболее часто используемый метод для создания строки. В следующем примере для создания нескольких строк используется присвоение. Обратите внимание, что в C# обратные косые черты литералов в строке необходимо заменять escape-последовательностями или заключать в @-кавычки всю строку, поскольку обратная косая черта (\) является escape-символом.

    
    string string1 = "This is a string created by assignment.";
    Console.WriteLine(string1);
    string string2a = "The path is C:\\PublicDocuments\\Report1.doc";
    Console.WriteLine(string2a);
    string string2b = @"The path is C:\PublicDocuments\Report1.doc";
    Console.WriteLine(string2b);
    // The example displays the following output:
    //       This is a string created by assignment.
    //       The path is C:\PublicDocuments\Report1.doc
    //       The path is C:\PublicDocuments\Report1.doc      
    
    
    
  • Путем вызова конструктора класса String. В следующем примере экземпляры строк создаются вызовом нескольких конструкторов класса. Обратите внимание, что некоторые конструкторы включают указатели на массивы символов или подписанные байтовые массивы в качестве параметров. Visual Basic не поддерживает вызовы этих конструкторов. Дополнительные сведения о конструкторах String см. сводку конструктора String.

    
    char[] chars = { 'w', 'o', 'r', 'd' };
    sbyte[] bytes = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x00 };
    
    // Create a string from a character array.
    string string1 = new string(chars);
    Console.WriteLine(string1);
    
    // Create a string that consists of a character repeated 20 times.
    string string2 = new string('c', 20);
    Console.WriteLine(string2);
    
    string stringFromBytes = null;
    string stringFromChars = null;
    unsafe
    {
       fixed (sbyte* pbytes = bytes)
       {
          // Create a string from a pointer to a signed byte array.
          stringFromBytes = new string(pbytes);
       }
       fixed (char* pchars = chars)
       {
          // Create a string from a pointer to a character array.
          stringFromChars = new string(pchars);
       }
    }
    Console.WriteLine(stringFromBytes);
    Console.WriteLine(stringFromChars);
    // The example displays the following output:
    //       word
    //       cccccccccccccccccccc
    //       ABCDE
    //       word  
    
    
    
  • С помощью оператора сцепления строк (+ в C# и & или + в Visual Basic) для создания одной строки из любой комбинации экземпляров String и строковых литералов. В следующем примере демонстрируется использование оператора сцепления строк.

    
    string string1 = "Today is " + DateTime.Now.ToString("D") + ".";
    Console.WriteLine(string1);
    
    string string2 = "This is one sentence. " + "This is a second. ";
    string2 += "This is a third sentence.";
    Console.WriteLine(string2);
    // The example displays output like the following:
    //    Today is Tuesday, July 06, 2011.
    //    This is one sentence. This is a second. This is a third sentence.
    
    
    
  • Путем извлечения свойства или вызова метода, который возвращает строку. В следующем примере используются методы класса String для извлечения подстроки из более крупной строки.

    
    string sentence = "This sentence has five words.";
    // Extract the second word.
    int startPosition = sentence.IndexOf(" ") + 1;
    string word2 = sentence.Substring(startPosition,
                                      sentence.IndexOf(" ", startPosition) - startPosition);
    Console.WriteLine("Second word: " + word2);
    // The example displays the following output:
    //       Second word: sentence
    
    
    
  • Путем вызова метода форматирования для преобразования значения или объекта в строковое представление . В следующем примере используется функция составное форматирование, чтобы внедрить строковое представление 2 объектов в строку.

    
    DateTime dateAndTime = new DateTime(2011, 7, 6, 7, 32, 0);
    double temperature = 68.3;
    string result = String.Format("At {0:t} on {0:D}, the temperature was {1:F1} degrees Fahrenheit.",
                                  dateAndTime, temperature);
    Console.WriteLine(result);
    // The example displays the following output:
    //       At 7:32 AM on Wednesday, July 06, 2011, the temperature was 68.3 degrees Fahrenheit.      
    
    
    

Объекты и символы юникода char

Каждый знак в строке определен скалярным значением Юникода, называемым также кодовой точкой Юникода или порядковым (числовым) значением знака Юникода. Каждая кодовая точка кодируется с использованием кодировки UTF-16, и числовое значение каждого закодированного знака представляется в виде объекта Char.

Один объект Char обычно представляет одну кодовую точку, то есть числовое значение Char равно кодовой точке. Напрмиер, кодовая точка для символа "a" будет U+0061. Однако для одной кодовой точки может потребоваться более одного закодированного элемента (более одного объекта Char). Стандарт Юникода определяет три типа символов, которые соответствуют нескольким объектам Char: графемы, дополнительные кодовые точки Юникода и символы в дополнительных плоскостях.

  • Графема представлена базовым символом с последующими один или несколько несамостоятельный знаков. Например, символ "ä" представляется объектом Char с кодовой точкой "U+0061" и объектом Char с кодовой точкой U+0308. Этот символ может также определяться одним объектом Char, имеющим кодовую точку U+00E4. Как показано в следующем примере, сравнение на предмет равенства с учетом языка и региональных параметров указывает, что эти два представления равны, хотя обычное порядковое сравнение не показывает этого. Однако если нормализуются две строки, порядковое сравнение также указывает, что они равны. (Дополнительные сведения о нормализации строки см. раздел Нормализация).

    
    using System;
    using System.Globalization;
    using System.IO;
    
    public class Example
    {
       public static void Main()
       {
          StreamWriter sw = new StreamWriter(@".\graphemes.txt");
          string grapheme = "\u0061\u0308";
          sw.WriteLine(grapheme);
    
          string singleChar = "\u00e4";
          sw.WriteLine(singleChar);
    
          sw.WriteLine("{0} = {1} (Culture-sensitive): {2}", grapheme, singleChar, 
                       String.Equals(grapheme, singleChar, 
                                     StringComparison.CurrentCulture));
          sw.WriteLine("{0} = {1} (Ordinal): {2}", grapheme, singleChar, 
                       String.Equals(grapheme, singleChar, 
                                     StringComparison.Ordinal));
          sw.WriteLine("{0} = {1} (Normalized Ordinal): {2}", grapheme, singleChar, 
                       String.Equals(grapheme.Normalize(), 
                                     singleChar.Normalize(), 
                                     StringComparison.Ordinal));
          sw.Close(); 
       }
    }
    // The example produces the following output:
    //       ä
    //       ä
    //       ä = ä (Culture-sensitive): True
    //       ä = ä (Ordinal): False
    //       ä = ä (Normalized Ordinal): True
    
    
    
  • Дополнительная кодовая точка Юникода (суррогатная пара) представлена объектом Char, чья кодовая точка — это верхний суррогат, за которым следует объект Char, чья кодовая точка — это нижний суррогат. Единицы кода высоких символов-заместителей диапазона в диапазоне от U+D800 до U+DBFF. Единицы кода низких символов-заместителей диапазона в диапазоне от U+DC00 до U+DFFF. Суррогатные пары используются для представления символов в 16 дополнительных плоскостях Юникода. В следующем примере создается суррогатный символ, который передается методу Char.IsSurrogatePair(Char, Char), чтобы определить, является ли пара суррогатной.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
          string surrogate = "\uD800\uDC03";
          for (int ctr = 0; ctr < surrogate.Length; ctr++) 
             Console.Write("U+{0:X2} ", Convert.ToUInt16(surrogate[ctr]));
    
          Console.WriteLine();
          Console.WriteLine("   Is Surrogate Pair: {0}", 
                            Char.IsSurrogatePair(surrogate[0], surrogate[1]));
       }
    }
    // The example displays the following output:
    //       U+D800 U+DC03
    //          Is Surrogate Pair: True
    
    
    

Строки и вставленные нули-символы

В платформе .NET Framework объект String может содержать внедренные нуль-символы, которые считаются частью строки при определении ее длины. Однако в некоторых языках, таких как C и C++, символ null служит индикатором конца строки, не считается ее частью и не учитывается при определении ее размера. Это означает, что указанные ниже типичные предположения о строках, делаемые разработчиками программ и библиотек, написанных на языках C и C++, не обязательно верны в отношении объектов String.

  • Значение, возвращаемое функцией strlen или wcslen, не обязательно равно String.Length.

  • Строка, созданная функцией strcpy_s или wcscpy_s, не обязательно идентично строке, созданной методом String.Copy.

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

Внедренные символы null в строке также обрабатываются по-разному при сортировке (или сравнивании) строки и при поиске в строке. Символы NULL игнорируются при выполнении сравнений с учетом языка и региональных параметров между двумя строками, включая сравнение с использованием инвариантного языка и региональных параметров. Они учитываются только для порядковых сравнений и сравнений, не учитывающих регистр. С другой стороны, внедренные символы null всегда учитываются при поиске строки при помощи методов методами, например Contains, StartsWith и IndexOf.

Строки и индексы

Индекс — это номер позиции объекта Char, а не знака Юникода, в объекте String. Индекс является неотрицательным числом и равен нулю для первой позиции в строке. Ряд методов поиска, таких как IndexOf и LastIndexOf, возвращают индекса знака или подстроку в экземпляре строки.

Свойство Chars позволяет осуществлять доступ к отдельным объектам Char по их позиции индекса в строке. Поскольку свойство Chars является свойством по умолчанию (в Visual Basic) или индексатором (в C#), можно получить доступ к отдельным объектам Char в строке с помощью кода, например следующего. Этот код выполняет поиск пробелов или символов пунктуации в строке, чтобы определить, сколько слов содержится в строке.


using System;

public class Example
{
   public static void Main()
   {
      string s1 = "This string consists of a single short sentence.";
      int nWords = 0;

      s1 = s1.Trim();      
      for (int ctr = 0; ctr < s1.Length; ctr++) {
         if (Char.IsPunctuation(s1[ctr]) | Char.IsWhiteSpace(s1[ctr]))
            nWords++;              
      }
      Console.WriteLine("The sentence\n   {0}\nhas {1} words.",
                        s1, nWords);                                                                     
   }
}
// The example displays the following output:
//       The sentence
//          This string consists of a single short sentence.
//       has 8 words.


Поскольку класс String реализует интерфейс IEnumerable , вы можете также проходить объекты Char в строке с помощью конструкции foreach, как показано в следующем примере показано.


using System;

public class Example
{
   public static void Main()
   {
      string s1 = "This string consists of a single short sentence.";
      int nWords = 0;

      s1 = s1.Trim();      
      foreach (var ch in s1) {
         if (Char.IsPunctuation(ch) | Char.IsWhiteSpace(ch))
            nWords++;              
      }
      Console.WriteLine("The sentence\n   {0}\nhas {1} words.",
                        s1, nWords);                                                                     
   }
}
// The example displays the following output:
//       The sentence
//          This string consists of a single short sentence.
//       has 8 words.


Последовательные значения индекса могут не совпадать с последовательным знаком Юникода, так как знак Юникода может быть закодирован несколькими объектами Char. В частности, строка может содержать элементы из нескольких символов текста, формирующихся базовым символом одну и более несамостоятельными знаками или суррогатными парами. Чтобы работать с символами Юникода, а не с объектами Char, используйте классы System.Globalization.StringInfo и TextElementEnumerator. В следующем примере проиллюстрировано различие между кодом, работающим с объектами Char, и кодом, работающим с символами Юникода. Он сравнивает количество символов или текстовые элементы каждого слова предложения. Строка содержит две последовательности базового символа, за которыми следует символ объединения.


using System;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // First sentence of The Mystery of the Yellow Room, by Leroux.
      string opening = "Ce n'est pas sans une certaine émotion que "+
                       "je commence à raconter ici les aventures " +
                       "extraordinaires de Joseph Rouletabille."; 
      // Character counters.
      int nChars = 0;
      // Objects to store word count.
      List<int> chars = new List<int>();
      List<int> elements = new List<int>();

      foreach (var ch in opening) {
         // Skip the ' character.
         if (ch == '\u0027') continue;

         if (Char.IsWhiteSpace(ch) | (Char.IsPunctuation(ch))) {
            chars.Add(nChars);
            nChars = 0;
         }
         else {
            nChars++;
         }
      }

      TextElementEnumerator te = StringInfo.GetTextElementEnumerator(opening);
      while (te.MoveNext()) {
         string s = te.GetTextElement();   
         // Skip the ' character.
         if (s == "\u0027") continue;
         if ( String.IsNullOrEmpty(s.Trim()) | (s.Length == 1 && Char.IsPunctuation(Convert.ToChar(s)))) {
            elements.Add(nChars);         
            nChars = 0;
         }
         else {
            nChars++;
         }
      }

      // Display character counts.
      Console.WriteLine("{0,6} {1,20} {2,20}",
                        "Word #", "Char Objects", "Characters"); 
      for (int ctr = 0; ctr < chars.Count; ctr++) 
         Console.WriteLine("{0,6} {1,20} {2,20}",
                           ctr, chars[ctr], elements[ctr]); 
   }
}
// The example displays the following output:
//       Word #         Char Objects           Characters
//            0                    2                    2
//            1                    4                    4
//            2                    3                    3
//            3                    4                    4
//            4                    3                    3
//            5                    8                    8
//            6                    8                    7
//            7                    3                    3
//            8                    2                    2
//            9                    8                    8
//           10                    2                    1
//           11                    8                    8
//           12                    3                    3
//           13                    3                    3
//           14                    9                    9
//           15                   15                   15
//           16                    2                    2
//           17                    6                    6
//           18                   12                   12


Этот образец работает с текстовыми элементами с помощью метода StringInfo.GetTextElementEnumerator и класса TextElementEnumerator, чтобы отобразить все текстовые элементы в строке. Также можно извлечь массив, содержащий начальный индекс каждого текстового элемента, вызвав метод StringInfo.ParseCombiningCharacters.

Дополнительные сведения о работать с модульными текста, а не значения Char отдельные см. класс StringInfo.

Значения NULL и пустые строки строки

Строка, которая была объявлена, но не имеет назначенного значения, — null. Попытка вызова методов для этой строки создает NullReferenceException. Нулевая строка отличается от пустой строки, значение которой является "" или String.Empty. В некоторых случаях передавая строку null или пустую строку в качестве аргумента в вызове метода создается исключение. К примеру, передача строки NULL методу Int32.Parse создает исключение ArgumentNullException, а передача пустой строкой создает FormatException. В других случаях аргумента метода может быть пустой строкой или пустой строкой. Например, если вы предоставляете реализацию IFormattable для класса, необходимо уравнять строку null и пустую строку с общим спецификатором формата ("G").

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

  • Метод IsNullOrEmpty, указывающий, имеет ли строка значение null или равна String.Empty. Этот метод устраняет необходимость в использовании такого кода, как следующий:

    
    if (str == null || str.Equals(String.Empty))
    
    
    
  • Метод IsNullOrWhiteSpace, который указывает, имеет ли строка значение null, равна ли она String.Empty или состоит исключительно из пробелов. Этот метод устраняет необходимость в использовании такого кода, как следующий:

    
    if (str == null || str.Equals(String.Empty) || str.Trim().Equals(String.Empty))
    
    
    

В следующем примере метод IsNullOrEmpty используется в реализации IFormattable.ToString пользовательского класса Temperature. Метод поддерживает строки формата G, C, F и K. Если пустая строка формата или строка формата, значение которой является null передается в метод, его значение изменяется на строку формата "G".


public string ToString(string format, IFormatProvider provider) 
{
   if (String.IsNullOrEmpty(format)) format = "G";  
   if (provider == null) provider = CultureInfo.CurrentCulture;

   switch (format.ToUpperInvariant())
   {
      // Return degrees in Celsius.    
      case "G":
      case "C":
         return temp.ToString("F2", provider) + "°C";
      // Return degrees in Fahrenheit.
      case "F": 
         return (temp * 9 / 5 + 32).ToString("F2", provider) + "°F";
      // Return degrees in Kelvin.
      case "K":   
         return (temp + 273.15).ToString();
      default:
         throw new FormatException(
               String.Format("The {0} format string is not supported.", 
                             format));
   }                                   
}


Неизменность и класс StringBuilder

Объект String называется неизменяемым (доступным только для чтения), поскольку после его создания его значение не может быть изменено. Методы, используемые для изменения объекта String, на самом деле возвращают новый объект String, содержащий измененные данные.

Поскольку строки являются неизменяемыми, процедуры обработки строк, которые выполняют повторили добавления или удаления значение, указывающая, что будет одной строкой точный могут значительно снижает производительность. Например следующий код использует генератор случайных чисел для создания строки с 1000 символов в диапазоне от 0x0001 до 0x052F. Хотя код, по-видимому, использует объединение строк для добавления нового символа к существующей строке с именем str, на самом деле он создает новый объект String для каждой операции объединения.


using System;
using System.IO;
using System.Text;

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();

      string str = String.Empty;
      StreamWriter sw = new StreamWriter(@".\StringFile.txt", 
                           false, Encoding.Unicode);

      for (int ctr = 0; ctr <= 1000; ctr++) {
         str += Convert.ToChar(rnd.Next(1, 0x0530)); 
         if (str.Length % 60 == 0)
            str += Environment.NewLine;          
      }                    
      sw.Write(str);
      sw.Close();
   }
}


Класс StringBuilder можно использовать вместо класса String для операций, предполагающих внесение множественных изменений в значение строки. В отличие от экземпляров класса String, объекты StringBuilder являются изменяемыми; при сцеплении, добавлении или удалении подстрок из строки операции выполняются над одной строкой. Закончив изменение значения объекта StringBuilder, можно вызвать его метод StringBuilder.ToString, чтобы преобразовать его в строку. В следующем примере заменяется String, использовавшаяся в предыдущем примере для сцепления 1000 произвольных символов в диапазоне от 0x0001 до 0x052F с объектом StringBuilder.


using System;
using System.IO;
using System.Text;

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();
      StringBuilder sb = new StringBuilder();
      StreamWriter sw = new StreamWriter(@".\StringFile.txt", 
                                         false, Encoding.Unicode);

      for (int ctr = 0; ctr <= 1000; ctr++) {
         sb.Append(Convert.ToChar(rnd.Next(1, 0x0530))); 
         if (sb.Length % 60 == 0)
            sb.AppendLine();          
      }                    
      sw.Write(sb.ToString());
      sw.Close();
   }
}


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

Члены класса String выполняют порядковые или лингвистические операции (операции с учетом языка и региональных параметров) над объектом String. Порядковые операции выполняются над числовым значением каждого объекта Char. Учитывающие язык и региональные параметры операции выполняются над значениями объектов String с учетом правил учета регистра, сортировки, форматирования и анализа, определяемых языком и региональными параметрами. Учитывающие язык и региональные параметры операции выполняются в контексте языка и региональных параметров, определенных явно либо текущих. Эти два вида операций могут дать очень разные результаты при выполнении в одной строке.

Примечание о безопасностиПримечание по безопасности

Если приложение принимает решение о безопасности в отношении символьного идентификатора, например имени файла или именованного канала, либо в отношении постоянных данных, например текстовых данных в XML-файле, в операции должно использоваться порядковое сравнение, а не сравнение с учетом языка и региональных параметров. Дело в том, что результаты сравнения с учетом языка и региональных параметров могут различаться в зависимости от действующего языка и региональных параметров, тогда как порядковое сравнение зависит исключительно от сравниваемых знаков.

Важное примечаниеВажно

Большинство методов, которые выполняют строковые операции, включают перегрузку, имеющую параметр типа StringComparison, который позволяет указать тип операции, выполняемой этим методом: порядковая или зависящая от языка и региональных стандартов. В целом следует вызвать эту перегрузку, чтобы цель вашего метода вызова ясно. Рекомендации по использованию порядковых операций и операций с учетом язык и региональные параметры см. в Рекомендации по использованию строк в .NET Framework.

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

s1wwdcbf.collapse_all(ru-ru,VS.110).gifРегистр

Правила учета регистра определяют, как осуществляется изменение регистра знаков Юникода, например при переходе от нижнего регистра к верхнему. Очень часто перед сравнением строк выполняется операция выбора регистра. Например строку можно преобразовать ы в верхний регистр, так что ее можно сравнить с другой строкой верхнего регистра. Преобразовывать символы в строке в нижний регистр можно путем вызова метода ToLower или ToLowerInvariant, а в верхний регистр — путем вызова метода ToUpper или ToUpperInvariant. Кроме того, вы можете использовать метод TextInfo.ToTitleCase для преобразования букв в строке в заглавные.

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

  • Различия в сопоставлении регистра ПРОПИСНОЙ ЛАТИНСКОЙ БУКВЫ (i), U+0049 ЛАТИНСКОЙ МАЛЕНЬКОЙ БУКВЫ U+0069 (i), ПРОПИСНОЙ ЛАТИНСКОЙ БУКВЫ I, ТОЧКОЙ ВЫШЕ (U+0130) и СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ DOTLESS U+0131 (I). В tr-tr (турецкий (Турция)) и языки az-Latn-AZ Азербайджана латинского алфавита (,), и в результатов, az и нейтральных языков и региональных параметров az-Latn, эквивалент нижнего регистра ПРОПИСНОЙ ЛАТИНСКОЙ БУКВЫ i СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ DOTLESS I и прописными буквами эквивалент ЛАТИНСКОЙ МАЛЕНЬКОЙ БУКВЫ i ПРОПИСНАЯ ЛАТИНСКАЯ БУКВА I, ТОЧКОЙ ВЫШЕ. На других языках, включая инвариантный язык и региональные параметры, СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ i и ПРОПИСНАЯ ЛАТИНСКАЯ БУКВА i в нижнем регистре и прописными буквами эквиваленты.

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

    
    using System;
    using System.Globalization;
    using System.Threading;
    
    public class Example
    {
       const string disallowed = "file";
    
       public static void Main()
       {
          IsAccessAllowed(@"FILE:\\\c:\users\user001\documents\FinancialInfo.txt");
       }
    
       private static void IsAccessAllowed(String resource)
       {
          CultureInfo[] cultures = { CultureInfo.CreateSpecificCulture("en-US"),
                                     CultureInfo.CreateSpecificCulture("tr-TR") };
          String scheme = null;
          int index = resource.IndexOfAny( new Char[] { '\\', '/' } );
          if (index > 0) 
             scheme = resource.Substring(0, index - 1);
    
          // Change the current culture and perform the comparison.
          foreach (var culture in cultures) {
             Thread.CurrentThread.CurrentCulture = culture;
             Console.WriteLine("Culture: {0}", CultureInfo.CurrentCulture.DisplayName);
             Console.WriteLine(resource);
             Console.WriteLine("Access allowed: {0}", 
                               ! String.Equals(disallowed, scheme, StringComparison.CurrentCultureIgnoreCase));      
             Console.WriteLine();
          }   
       }
    }
    // The example displays the following output:
    //       Culture: English (United States)
    //       FILE:\\\c:\users\user001\documents\FinancialInfo.txt
    //       Access allowed: False
    //       
    //       Culture: Turkish (Turkey)
    //       FILE:\\\c:\users\user001\documents\FinancialInfo.txt
    //       Access allowed: True
    
    
    
  • Различия в случае сопоставления между инвариантным языка и региональных параметров и всеми другими языками. В таких случаях использование правила регистра инвариантного языка и региональных параметров изменения символ в прописными буквами или нижний регистр возвращает тот же символ. Для всех остальных языков, возвращается отдельный символ. Некоторые из соответствующих символов, перечислены в следующей таблице.

    Знак

    Если изменяется на

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

    ПОДПИСЬ МИКРОНА (U+00B5)

    Прописные буквы

    ГРЕЧЕСКАЯ ПРОПИСНАЯ БУКВА MU U+-39C (-)

    ПРОПИСНАЯ ЛАТИНСКАЯ БУКВА I, ТОЧКОЙ СТРОЧНУЮ (U+0130)

    Строчные буквы

    СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ I (U+0069)

    СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ DOTLESS I (U+0131)

    Прописные буквы

    ПРОПИСНАЯ ЛАТИНСКАЯ БУКВА I (U+0049)

    СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ ДЛИННОЕ S (U+017F)

    Прописные буквы

    ПРОПИСНАЯ ЛАТИНСКАЯ БУКВА S (U+0053)

    ПРОПИСНАЯ ЛАТИНСКАЯ БУКВА D, Z МАЛЕНЬКОЙ БУКВЫ, CARON (U + 01 C — 5)

    Строчные буквы

    СИМВОЛ СТРОЧНОЙ ЛАТИНСКОЙ DZ, CARON (U + 01 C — 6)

    СОВМЕЩАЮЩ ГРЕЧЕСКОЕ YPOGEGRAMMENI (U+0345)

    Прописные буквы

    ГРЕЧЕСКАЯ ПРОПИСНАЯ БУКВА IOTA (U+0399)

  • Различия в случае сопоставления двухбуквенных пар с различным регистром символа ASCII в диапазоне. В большинстве языков, двухбуквенная пары с различным регистром равна соответствующим двухбуквенным прописными буквами или нижнем регистре паре. Это не относится к следующим двухбуквенных пар на следующих языках, поскольку в этом случае они сравниваются на digraph:

    • «lJ» и «nJ (hr-HR» в Хорвате Хорватии ()) язык.

    • буквы «в» cs-CZ (чехословакском (чешская республика) и sk-SK (словацкий (Словакия)) языки.

    • «aA» da-dk ") (датские Дании ()) язык.

    • «cS», «dZ», «dZS», «NY», «sZ», «tY» и «zS» hu-HU (в венгерском (Венгрия)) язык.

    • буквы «с» и «lL в» es-ES_tradnl (испанском (Испания, традиционная сортировка)) язык.

    • буквы «с», «gI», «kH», «nG» nH», «пэ-аш», «qU «tH» и «tR» в vi-VN (вьетнамском (Вьетнам)) язык.

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

В следующем примере показаны некоторые различия правил выбора регистра в разных культурах при преобразовании строк в верхний регистр.


using System;
using System.Globalization;
using System.IO;

public class Example
{
   public static void Main()
   {
      StreamWriter sw = new StreamWriter(@".\case.txt");   
      string[] words = { "file", "sıfır", "Dženana" };
      CultureInfo[] cultures = { CultureInfo.InvariantCulture, 
                                 new CultureInfo("en-US"),  
                                 new CultureInfo("tr-TR") };

      foreach (var word in words) {
         sw.WriteLine("{0}:", word);
         foreach (var culture in cultures) {
            string name = String.IsNullOrEmpty(culture.Name) ? 
                                 "Invariant" : culture.Name;
            string upperWord = word.ToUpper(culture);
            sw.WriteLine("   {0,10}: {1,7} {2, 38}", name, 
                         upperWord, ShowHexValue(upperWord));

         }
         sw.WriteLine();  
      }
      sw.Close();
   }

   private static string ShowHexValue(string s)
   {
      string retval = null;
      foreach (var ch in s) {
         byte[] bytes = BitConverter.GetBytes(ch);
         retval += String.Format("{0:X2} {1:X2} ", bytes[1], bytes[0]);     
      }
      return retval;
   } 
}
// The example displays the following output:
//    file:
//        Invariant:    FILE               00 46 00 49 00 4C 00 45 
//            en-US:    FILE               00 46 00 49 00 4C 00 45 
//            tr-TR:    FİLE               00 46 01 30 00 4C 00 45 
//    
//    sıfır:
//        Invariant:   SıFıR         00 53 01 31 00 46 01 31 00 52 
//            en-US:   SIFIR         00 53 00 49 00 46 00 49 00 52 
//            tr-TR:   SIFIR         00 53 00 49 00 46 00 49 00 52 
//    
//    Dženana:
//        Invariant:  DžENANA   01 C5 00 45 00 4E 00 41 00 4E 00 41 
//            en-US:  DŽENANA   01 C4 00 45 00 4E 00 41 00 4E 00 41 
//            tr-TR:  DŽENANA   01 C4 00 45 00 4E 00 41 00 4E 00 41 


s1wwdcbf.collapse_all(ru-ru,VS.110).gifАнализ и форматирования

Разбор является операцией, обратной форматированию. Правила форматирования определяют как преобразовать значение, например, дату и время или число, в его строковое представление, тогда как правила анализа определяют способ преобразования строкового представления в значение даты и времени. Правила Форматирования и синтаксического анализа зависят от культурных конвенций. В следующем примере демонстрируется двусмысленность, которая может возникнуть при интерпретации строки даты с какими-либо особенностями языка и региональных параметров. Не зная условных обозначений языка и региональных параметров, в которых была создана строка даты, невозможно определить, что подразумевается под 03/01/2011, 3/1/2011 или 01/03/2011 — 3 января 2011 г. или 1 марта 2011 г.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      DateTime date = new DateTime(2011, 3, 1);
      CultureInfo[] cultures = { CultureInfo.InvariantCulture, 
                                 new CultureInfo("en-US"), 
                                 new CultureInfo("fr-FR") };

      foreach (var culture in cultures)
         Console.WriteLine("{0,-12} {1}", String.IsNullOrEmpty(culture.Name) ?
                           "Invariant" : culture.Name, 
                           date.ToString("d", culture));                                    
   }
}
// The example displays the following output:
//       Invariant    03/01/2011
//       en-US        3/1/2011
//       fr-FR        01/03/2011


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


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString = "07/10/2011";
      CultureInfo[] cultures = { CultureInfo.InvariantCulture, 
                                 CultureInfo.CreateSpecificCulture("en-GB"), 
                                 CultureInfo.CreateSpecificCulture("en-US") };
      Console.WriteLine("{0,-12} {1,10} {2,8} {3,8}\n", "Date String", "Culture", 
                                                 "Month", "Day");
      foreach (var culture in cultures) {
         DateTime date = DateTime.Parse(dateString, culture);
         Console.WriteLine("{0,-12} {1,10} {2,8} {3,8}", dateString, 
                           String.IsNullOrEmpty(culture.Name) ?
                           "Invariant" : culture.Name, 
                           date.Month, date.Day);
      }                      
   }
}
// The example displays the following output:
//       Date String     Culture    Month      Day
//       
//       07/10/2011    Invariant        7       10
//       07/10/2011        en-GB       10        7
//       07/10/2011        en-US        7       10


s1wwdcbf.collapse_all(ru-ru,VS.110).gifСравнение и сортировка строк

Правила для сортировки и сравнения строк, отличаются в зависимости от языка и региональных параметров. Например, порядок сортировки может определяться на фонетике или на визуальном представлении символов. В языках Восточной Азии символы сортируются по штрихам и корням идеограмм. Сортировка также зависит от того, какой порядок используют региональные параметры для алфавита. Например, датский языке есть символ «Æ», он действует в алфавите после буквы «Z». Кроме того, сравнения могут быть зависеть от регистра символов, и в некоторых случаях, в которых перечисляются правила также различается. Порядковое сравнение, с другой стороны, использует кодовых точек юникода отдельных символов в строке сравнение и сортировка строк.

Правила сортировки определяют алфавитный порядок знаков Юникода и принципы сравнения двух строк. Например, метод String.Compare(String, String, StringComparison) сравнивает две строки на основе параметра StringComparison. Если значение параметра StringComparison.CurrentCulture, этот метод выполняет лингвистических сравнений, использующий конвенций текущую культуру; Если значение параметра StringComparison.Ordinal, этот метод выполняет порядковое сравнение. Следовательно, как показано в следующем примере, если текущий язык и региональные параметры (США), то первый вызов метода String.Compare(String, String, StringComparison) (с помощью сравнения с учетом языка и региональных параметров) проверяет «a» меньше «a», но второй вызов тот же метод (с помощью порядкового сравнения) проверяет «a» больше «a».


using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
      Console.WriteLine(String.Compare("A", "a", StringComparison.CurrentCulture));
      Console.WriteLine(String.Compare("A", "a", StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       1
//       -32


Платформа .NET Framework поддерживает правила сортировки по словам, строкам и порядковым номерам.

  • При сортировке по словам выполняется сравнение строк с учетом языка и региональных параметров, при котором некоторые символы Юникода, отличные от букв и цифр, могут иметь специально присвоенные им весовые коэффициенты. Например, дефису (-) можно присвоить очень низкий весовой коэффициент, и тогда в отсортированном списке слова "coop" и "co-op" окажутся рядом. Для списка методы String для 2 строки с помощью ключевого слова сортирует правила, см. в разделе Операции со строками по категориям.

  • При сортировке строк выполняется сравнение с учетом языка и региональных параметров. Она аналогична сортировке по словам, за исключением того, что особых случаев нет и все буквы и цифры следуют после всех остальных символов Юникода. Две строки можно сравнить с использованием правил сортировки строк, вызывая перегрузки метода CompareInfo.Compare с параметром options, в который передается значение CompareOptions.StringSort. Обратите внимание, что это единственный метод который.NET Framework предоставляет для сравнения двух строк, используя правила сортировки по строке.

  • При сортировке по порядковому номеру строки сравниваются на основе числовых значений каждого объекта Char в строке. Порядковое сравнение автоматически выполняется независимо от регистра, поскольку один и тот же символ в нижнем и верхнем регистре имеет разные кодовые точки. Однако если регистр не важен, можно задать порядковое сравнение, при котором игнорируется регистр. Этот способ эквивалентен преобразованию строки в верхний регистр с использованием инвариантного языка и региональных параметров и выполнению порядкового сравнения результатов. Для списка методы String для 2 строки с помощью порядковые правила сортировки см. в разделе Операции со строками по категориям.

Сравнение с учетом языка и региональных параметров — это любое сравнение, при котором явно или неявно используется объект CultureInfo, включая инвариантную установку языка и региональных параметров, заданную в свойстве CultureInfo.InvariantCulture. Неявная культура — это текущая культура, задаваемая свойствами Thread.CurrentCulture и CultureInfo.CurrentCulture. Значительный вариант в порядке сортировки символов (т е символов, для которых свойство Char.IsLetter возвращает true) в разных языках. Можно указать сравнения с учетом языка и региональных параметров, использует правила конкретного языка, указав объект CultureInfo методу сравнения строк, например Compare(String, String, CultureInfo, CompareOptions). Можно указать сравнения с учетом языка и региональных параметров с использованием правил текущего языка, указав StringComparison.CurrentCulture, StringComparison.CurrentCultureIgnoreCase или какой-либо элемент перечисления CompareOptions, отличных от CompareOptions.Ordinal или CompareOptions.OrdinalIgnoreCase в соответствующую перегруженных метода Compare. Сравнение с учетом языка и региональных параметров обычно подходит для сортировки, а не порядковое сравнение. Порядковое сравнение обычно подходит для определения того, является ли 2 двух строк (то есть для указания идентификатора), а сравнения с учетом языка и региональных параметров нет.

В следующем примере показана разница между языка важным и порядковым сравнением. Пример возвращает 3 строк, «Apple», «Æble» и «AEble» с помощью соглашения языков da-dk ") и en-us (каждый из которых язык по умолчанию в метод Compare вызывается), так и порядкового сравнения. Поскольку в датском языке символ «Æ» рассматривается как отдельная буква и сортировки его в алфавите после буквы «Z», строка «Æble» больше «Apple». Однако «Æble» не является удобной для «AEble», поэтому также «Æble» больше «AEble». Языка и региональных параметров " en-us " отсутствует буква Æ и обрабатывает его как эквивалентно «асимметричное шифрование», объясняется, почему «Æble» меньше «Apple», но равно «AEble». Порядковое сравнение, с другой стороны, рассматривает «Apple» будет меньше «Æble» и ttto «Æble» больше «AEble».


using System;
using System.Globalization;
using System.Threading;

public class CompareStringSample
{
   public static void Main()
   {
      string str1 = "Apple";
      string str2 = "Æble"; 
      string str3 = "AEble";

      // Set the current culture to Danish in Denmark.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
      Console.WriteLine("Current culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str1, str2, String.Compare(str1, str2));
      Console.WriteLine("Comparison of {0} with {1}: {2}\n", 
                        str2, str3, String.Compare(str2, str3));

      // Set the current culture to English in the U.S.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
      Console.WriteLine("Current culture: {0}", 
                        CultureInfo.CurrentCulture.Name);
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str1, str2, String.Compare(str1, str2));
      Console.WriteLine("Comparison of {0} with {1}: {2}\n", 
                        str2, str3, String.Compare(str2, str3));

      // Perform an ordinal comparison.
      Console.WriteLine("Ordinal comparison");
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str1, str2, 
                        String.Compare(str1, str2, StringComparison.Ordinal));
      Console.WriteLine("Comparison of {0} with {1}: {2}", 
                        str2, str3, 
                        String.Compare(str2, str3, StringComparison.Ordinal));
   }
}
// The example displays the following output:
//       Current culture: da-DK
//       Comparison of Apple with Æble: -1
//       Comparison of Æble with AEble: 1
//       
//       Current culture: en-US
//       Comparison of Apple with Æble: 1
//       Comparison of Æble with AEble: 0
//       
//       Ordinal comparison
//       Comparison of Apple with Æble: -133
//       Comparison of Æble with AEble: 133


Используйте следующие общие рекомендации для выбора соответствующего метода сортировки и сравнения строк.

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

  • Если необходимо быть приказанным строки в соответствии с соглашениями конкретного языка, необходимо упорядочить их, указав объект CultureInfo, представляющий этот язык методу сравнения. Например, в приложении используются научить студентам определенному языку, то может быть приказанным строки в соответствии с соглашениями одного из языков, который сообщает этот язык.

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

  • Для сравнения, которое содержит решение безопасности (например, допустимо ли имя пользователя), всегда нужно найти порядковый тест на равенство с помощью вызова метода Equals.

ПримечаниеПримечание

Используемые в сравнении строк правила сортировки и выбора регистра с учетом языка и региональных параметров определяются версией .NET Framework. В .NET Framework 4.5, в операционной системе Windows 8, сортировку, регистр нормализация и данных символов юникода соответствуют стандарту юникод 6.0. В других операционных системах, он соответствует стандарту юникод 5.0.

Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе System.Globalization.CompareOptions. Дополнительные рекомендации о том, когда использование каждого правила см. в разделе Рекомендации по использованию строк в .NET Framework.

Обычно не нужно вызывать строковые методы сравнения, такие как Compare, непосредственно, чтобы определить порядок сортировки строк. Вместо этого методы сравнения вызывается методами сортировки, Array.Sort или List<T>.Sort. В следующем примере выполняется 4 различных операций сортировки (сортировку ключевые слова с использованием текущего языка и региональных параметров сортировки, ключевые слова с использованием инвариантного языка и региональных параметров, порядковую сортировку и сортировки строк с использованием инвариантного языка и региональных параметров) без явного вызова метода сравнения строк, хотя они определяют тип сравнения по использованию. Обратите внимание, что каждый тип сортировки создает уникальную последовательность строк в массиве.


using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] strings = { "coop", "co-op", "cooperative", 
                           "co\u00ADoperative", "cœur", "coeur" };

      // Perform a word sort using the current (en-US) culture.
      string[] current = new string[strings.Length]; 
      strings.CopyTo(current, 0); 
      Array.Sort(current, StringComparer.CurrentCulture);

      // Perform a word sort using the invariant culture.
      string[] invariant = new string[strings.Length];
      strings.CopyTo(invariant, 0); 
      Array.Sort(invariant, StringComparer.InvariantCulture);

      // Perform an ordinal sort.
      string[] ordinal = new string[strings.Length];
      strings.CopyTo(ordinal, 0); 
      Array.Sort(ordinal, StringComparer.Ordinal);

      // Perform a string sort using the current culture.
      string[] stringSort = new string[strings.Length];
      strings.CopyTo(stringSort, 0); 
      Array.Sort(stringSort, new SCompare());

      // Display array values
      Console.WriteLine("{0,13} {1,13} {2,15} {3,13} {4,13}\n", 
                        "Original", "Word Sort", "Invariant Word", 
                        "Ordinal Sort", "String Sort");
      for (int ctr = 0; ctr < strings.Length; ctr++)
         Console.WriteLine("{0,13} {1,13} {2,15} {3,13} {4,13}", 
                           strings[ctr], current[ctr], invariant[ctr], 
                           ordinal[ctr], stringSort[ctr] );          
   }
}

// IComparer<String> implementation to perform string sort.
internal class SCompare : IComparer<String>
{
   public int Compare(string x, string y)
   {
      return CultureInfo.CurrentCulture.CompareInfo.Compare(x, y, CompareOptions.StringSort);
   }
}
// The example displays the following output:
//         Original     Word Sort  Invariant Word  Ordinal Sort   String Sort
//    
//             coop          cœur            cœur         co-op         co-op
//            co-op         coeur           coeur         coeur          cœur
//      cooperative          coop            coop          coop         coeur
//     co­operative         co-op           co-op   cooperative          coop
//             cœur   cooperative     cooperative  co­operative   cooperative
//            coeur  co­operative    co­operative          cœur  co­operative


СоветСовет

По сути, в платформе .NET Framework используются ключи сортировки для поддержки культурн- параметры сравнения строк. Каждому знаку в строке ставится в соответствие несколько категорий весовых коэффициентов для сортировки, в том числе весовые коэффициенты, алфавитные, регистра и диакритические. Ключ, представленный классом SortKey, предоставляет хранилищем этих весовых коэффициентов для конкретной строки. Если приложение выполняет большое число операций поиска или сортировки на том же наборе строк можно повысить его производительность путем создания и хранения ключей сортировки для всех строк, которые он использует. При выполнении операций сортировки или сравнения, следует использовать ключи сортировки вместо строк. Дополнительные сведения см. в описании класса SortKey.

Если не указать соглашение сравнения строк, методы сортировки, например Array.Sort(Array) выполняют с учетом языка и региональных параметров сортировки с учетом регистра на строках. В следующем примере показано, как изменить текущий язык и региональные параметры влияет на порядок отсортированных строк в массиве. Он создает массив 3 строк. Сначала задается свойство System.Threading.Thread.CurrentThread.CurrentCulture для en-US и вызывается метод Array.Sort(Array). Полученный в результате порядок сортировки основан на правилах сортировки для языка и региональных параметров Английский (США). Затем примере задает свойство System.Threading.Thread.CurrentThread.CurrentCulture для da-DK и вызывает метод Array.Sort снова. Обратите внимание, что теперь порядок сортировки отличается от результата для языка и региональных параметров "en-US", так как используются правило сортировки данных для Дании (датский язык).


using System;
using System.Globalization;
using System.Threading;

public class ArraySort 
{
   public static void Main(String[] args) 
   {
      // Create and initialize a new array to store the strings.
      string[] stringArray = { "Apple", "Æble", "Zebra"};

      // Display the values of the array.
      Console.WriteLine( "The original string array:");
      PrintIndexAndValues(stringArray);

      // Set the CurrentCulture to "en-US".
      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
      // Sort the values of the array.
      Array.Sort(stringArray);

      // Display the values of the array.
      Console.WriteLine("After sorting for the culture \"en-US\":");
      PrintIndexAndValues(stringArray); 

      // Set the CurrentCulture to "da-DK".
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
      // Sort the values of the Array.
      Array.Sort(stringArray);

      // Display the values of the array.
      Console.WriteLine("After sorting for the culture \"da-DK\":");
      PrintIndexAndValues(stringArray); 
   }
   public static void PrintIndexAndValues(string[] myArray)  
   {
      for (int i = myArray.GetLowerBound(0); i <= 
            myArray.GetUpperBound(0); i++ )
         Console.WriteLine("[{0}]: {1}", i, myArray[i]);
      Console.WriteLine();      
   }
}
// The example displays the following output:
//       The original string array:
//       [0]: Apple
//       [1]: Æble
//       [2]: Zebra
//       
//       After sorting for the "en-US" culture:
//       [0]: Æble
//       [1]: Apple
//       [2]: Zebra
//       
//       After sorting for the culture "da-DK":
//       [0]: Apple
//       [1]: Zebra
//       [2]: Æble


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

Если ваша основная цель в сравнение строк заключается в том, чтобы определить, равны ли они, вам следует вызвать метод String.Equals. Как правило, следует использовать Equals для выполнения порядкового сравнения. Метод String.Compare предназначен в основном для сортировки строк.

Методы строкового поиска, такие как String.StartsWith и String.IndexOf, также могут выполнять порядковые сравнения строк и сравнения с учетом языка и региональных стандартов. В следующем примере иллюстрируются различия между порядковым сравнением и сравнением с учетом языка и региональных параметров с использованием метода IndexOf. Поиск с учетом языка и региональных параметров, когда текущим языком является английский (США), считает, что подстрока "oe" соответствует лигатуре «œ». Поскольку "мягкий" дефис (U + 00AD) — символ нулевой ширины, поиск обрабатывает мягкий дефис как эквивалент Empty и находит соответствие в начале строки. Поиск по порядковым номерам, с другой стороны, не находит совпадения в любом случае.


using System;

public class Example
{
   public static void Main()
   {
      // Search for "oe" and "œu" in "œufs" and "oeufs".
      string s1 = "œufs";
      string s2 = "oeufs";
      FindInString(s1, "oe", StringComparison.CurrentCulture);
      FindInString(s1, "oe", StringComparison.Ordinal);
      FindInString(s2, "œu", StringComparison.CurrentCulture);
      FindInString(s2, "œu", StringComparison.Ordinal);
      Console.WriteLine();

      string s3 = "co\u00ADoperative";
      FindInString(s3, "\u00AD", StringComparison.CurrentCulture);
      FindInString(s3, "\u00AD", StringComparison.Ordinal);
   }

   private static void FindInString(string s, string substring, StringComparison options)
   {
      int result = s.IndexOf(substring, options);
      if (result != -1)
         Console.WriteLine("'{0}' found in {1} at position {2}", 
                           substring, s, result);
      else
         Console.WriteLine("'{0}' not found in {1}", 
                           substring, s);                                                  
   }
}
// The example displays the following output:
//       'oe' found in œufs at position 0
//       'oe' not found in œufs
//       'œu' found in oeufs at position 0
//       'œu' not found in oeufs
//       
//       '­' found in co­operative at position 0
//       '­' found in co­operative at position 2


s1wwdcbf.collapse_all(ru-ru,VS.110).gifПоиск строк

Методы поиска строки, например String.StartsWith и String.IndexOf, также могут выполнять языка, или порядковые сравнения строк, чтобы определить поиск символа или подстрока в данной строке.

Методы поиска позволяют для поиска символов или одного набора символов в строке, или для поиска подстроки в строке. Методы поиска в классе String, этот поиск отдельного символов, например метод IndexOf или одному набора символов, например метод IndexOfAny, все порядковый выполняет поиск. Для выполнения языка и региональных параметров; поиск символа, необходимо вызвать метод CompareInfo как CompareInfo.IndexOf(String, Char) или CompareInfo.LastIndexOf(String, Char). Обратите внимание, что результаты поиск символа с помощью порядковый номер и сравнения с учетом языка и региональных параметров могут быть очень различаются. Например, при поиске precomposed символов юникода, например лигатура «Æ» (U + 00 C — 6) может соответствовать одному вхождению компонентов в правильной последовательности, например «асимметричное шифрование» (U+041U+0045), в зависимости от языка. В следующем примере показана разница между String.IndexOf(Char) и методами CompareInfo.IndexOf(String, Char) поиск отдельного символа. Лигатура «æ» (U+00E6) находится в строке «антенне» при использовании соглашений языка en-us, но не при использовании соглашений языка da-dk ") или при выполнении порядкового сравнения.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String[] cultureNames = { "da-DK", "en-US" };
      CompareInfo ci;
      String str = "aerial";
      Char ch = 'æ';  // U+00E6

      Console.Write("Ordinal comparison -- ");
      Console.WriteLine("Position of '{0}' in {1}: {2}", ch, str,
                        str.IndexOf(ch));

      foreach (var cultureName in cultureNames) {
         ci = CultureInfo.CreateSpecificCulture(cultureName).CompareInfo;
         Console.Write("{0} cultural comparison -- ", cultureName);
         Console.WriteLine("Position of '{0}' in {1}: {2}", ch, str,
                           ci.IndexOf(str, ch));
      }
   }
}
// The example displays the following output:
//       Ordinal comparison -- Position of 'æ' in aerial: -1
//       da-DK cultural comparison -- Position of 'æ' in aerial: -1
//       en-US cultural comparison -- Position of 'æ' in aerial: 0


С другой стороны, методы класса String, поиск строки, а не выполняют поиск символа языка и региональных параметров; если параметры поиска явно указаны параметром типа StringComparison. Единственное исключение Contains, которое выполняет порядковое поиск.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifПроверка равенства

Метод String.Compare используется для определения отношения между двумя строками в порядке сортировки. Как правило, эта операция зависит от языка и региональных параметров. В противоположность этому, вызовите метод String.Equals для проверки на равенство. Поскольку проверка на предсет равенства обычно сравнивает пользовательский ввод с некоторой известной строкой, паролем или путем файловой системы, обычно это порядковая операция.

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

Можно выполнить проверку на равенство, вызвав метод String.Compare и определив, равно ли возвращаемое значение нулю. Однако эта практика не рекомендуется. Чтобы определить, являются ли две строки равными, следует вызывать одну из перегрузок метода String.Equals. Предпочтительной перегрузкой для вызова является экземпляр метода Equals(String, StringComparison) или статический метод Equals(String, String, StringComparison), поскольку оба метода содержат параметр System.StringComparison, явно задающий тип сравнения.

В следующем примере показано, насколько опасно выполнять сравнение на равенство с учетом особенностей языка и региональных параметров в тех случаях, когда для этого рекомендовано использовать порядковое сравнение. В этом случае цель кода заключается в том, чтобы запретить доступ к файловой системе URL-адреса, начинающиеся с "FILE://" или "file://" выполняя сравнение без учета регистра в начале URL-адрес в строке "FILE://". Однако, если культуры сравнение выполняется с помощью культуры Turkish (Turkey) в URL-адресе, который начинается с "file://", сравнение на предмет равенства не удается, потому что турецкий эквивалент строчной "i" — "İ" вместо "I". В результате случайно разрешается доступ к файловой системе. С другой стороны, если выполняется порядковое сравнение, сравнение на равенство выполняется успешно и доступ к файловой системе запрещен.


using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("tr-TR");      

      string filePath = "file://c:/notes.txt";

      Console.WriteLine("Culture-sensitive test for equality:");
      if (! TestForEquality(filePath, StringComparison.CurrentCultureIgnoreCase))
         Console.WriteLine("Access to {0} is allowed.", filePath);
      else
         Console.WriteLine("Access to {0} is not allowed.", filePath);

      Console.WriteLine("\nOrdinal test for equality:");
      if (! TestForEquality(filePath, StringComparison.OrdinalIgnoreCase))
         Console.WriteLine("Access to {0} is allowed.", filePath);
      else
         Console.WriteLine("Access to {0} is not allowed.", filePath);
   }

   private static bool TestForEquality(string str, StringComparison cmp)
   {
      int position = str.IndexOf("://");
      if (position < 0) return false;

      string substring = str.Substring(0, position);  
      return substring.Equals("FILE", cmp);
   }
}
// The example displays the following output:
//       Culture-sensitive test for equality:
//       Access to file://c:/notes.txt is allowed.
//       
//       Ordinal test for equality:
//       Access to file://c:/notes.txt is not allowed.


Нормализация

Некоторые символы Юникода имеют несколько представлений. Например любой из следующих кодовых точек может представлять букву «ắ»:

  • U+1EAF

  • U+0103 U+0301

  • U+0061 U+0306 U+0301

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

В стандарте Юникода определен процесс, называемый нормализацией, который возвращает одно двоичное представление символа в кодировке Юникод для любого из нескольких эквивалентных двоичных представлений. При нормализации могут использоваться несколько алгоритмов, которые называются формами нормализации и следуют различным правилам. Платформа .NET Framework поддерживает формы нормализации Юникода C, D, KC и KD. После нормализации строк до одной и той же формы нормализации их можно сравнить с использованием порядкового сравнения.

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

Определить, нормализована ли строка до формы нормализации C, можно путем вызова метода String.IsNormalized(); также можно вызвать String.IsNormalized(NormalizationForm) метод, чтобы определить, нормализована ли строка до указанной формы нормализации. Также можно вызвать метод String.Normalize() для преобразования строки в форму нормализации C или вызвать метод String.Normalize(NormalizationForm) для преобразования строки в указанную форму нормализации. Пошаговые инструкции нормализации и сравнения строк см. в разделе Normalize() и методы Normalize(NormalizationForm).

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


using System;
using System.Globalization;
using System.IO;
using System.Text;

public class Example
{
   private static StreamWriter sw;

   public static void Main()
   {
      sw = new StreamWriter(@".\TestNorm1.txt");

      // Define three versions of the same word. 
      string s1 = "sống";        // create word with U+1ED1
      string s2 = "s\u00F4\u0301ng";
      string s3 = "so\u0302\u0301ng";

      TestForEquality(s1, s2, s3);      
      sw.WriteLine();

      // Normalize and compare strings using each normalization form.
      foreach (string formName in Enum.GetNames(typeof(NormalizationForm)))
      {
         sw.WriteLine("Normalization {0}:\n", formName); 
         NormalizationForm nf = (NormalizationForm) Enum.Parse(typeof(NormalizationForm), formName);
         string[] sn = NormalizeStrings(nf, s1, s2, s3);
         TestForEquality(sn);           
         sw.WriteLine("\n");                                        
      }

      sw.Close();   
   }

   private static void TestForEquality(params string[] words)
   {
      for (int ctr = 0; ctr <= words.Length - 2; ctr++)
         for (int ctr2 = ctr + 1; ctr2 <= words.Length - 1; ctr2++) 
            sw.WriteLine("{0} ({1}) = {2} ({3}): {4}", 
                         words[ctr], ShowBytes(words[ctr]),
                         words[ctr2], ShowBytes(words[ctr2]),
                         words[ctr].Equals(words[ctr2], StringComparison.Ordinal));
   }

   private static string ShowBytes(string str)
   {
      string result = null;
      foreach (var ch in str)
         result += String.Format("{0} ", Convert.ToUInt16(ch).ToString("X4")); 
      return result.Trim();            
   } 

   private static string[] NormalizeStrings(NormalizationForm nf, params string[] words)
   {
      for (int ctr = 0; ctr < words.Length; ctr++)
         if (! words[ctr].IsNormalized(nf))
            words[ctr] = words[ctr].Normalize(nf); 
      return words;   
   }
}
// The example displays the following output:
//       sống (0073 1ED1 006E 0067) = sống (0073 00F4 0301 006E 0067): False
//       sống (0073 1ED1 006E 0067) = sống (0073 006F 0302 0301 006E 0067): False
//       sống (0073 00F4 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): False
//       
//       Normalization FormC:
//       
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       
//       
//       Normalization FormD:
//       
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       
//       
//       Normalization FormKC:
//       
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       sống (0073 1ED1 006E 0067) = sống (0073 1ED1 006E 0067): True
//       
//       
//       Normalization FormKD:
//       
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True
//       sống (0073 006F 0302 0301 006E 0067) = sống (0073 006F 0302 0301 006E 0067): True


Дополнительные сведения о нормализация и формы нормализации см. в разделе System.Text.NormalizationForm, так и Аннекс #15 нормализации юникода: Формы нормализации юникода и Часто задаваемые вопросы по на веб-сайте unicode.org.

Операции со строками по категориям

Класс String предоставляет элементы для сравнения строк, тестирования строк на равенство, поиска символов или подстрок в строке, изменения строк, извлечения подстрок из строки, сочетания строк, форматирования значений, копирования строк и нормализации строк.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifСравнение строк

Сравнивать строки для определения их относительного положения в порядке сортировки можно с помощью следующих методов String:

  • Метод Compare возвращает целое число, обозначающее связь между двумя строками в порядке сортировки.

  • Метод CompareOrdinal возвращает целое число, обозначающее связь между двумя строками на основе сравнения их кодовых точек.

  • Метод CompareTo возвращает целое число, обозначающее связь между текущим экземпляром строки и второй строкой в порядке сортировки. Метод CompareTo(String) предоставляет реализации IComparable и IComparable<T> для класса String.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifСтроки тестирования на равенство

Метод Equals служит для определения совпадения двух строк. Экземпляр Equals(String, String, StringComparison) и статические перегрузки метода Equals(String, StringComparison) позволяют указать, является ли сравнение порядковым или определяется культурой и учитывается ли регистр. Большинство проверок на равенство являются порядковыми, а сравнения на равенство, определяющие доступ к системному ресурсу (например, объекту файловой системы), всегда должны быть порядковыми.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifЧтобы найти символы в строке

Класс String содержит два вида методов поиска.

  • Методы, возвращающие значение Boolean, чтобы указать, присутствует ли та или иная подстрока в экземпляре строки. К ним относятся методы Contains, EndsWith и StartsWith.

  • Методы, определяющие начальную позицию подстроки в экземпляре строки. К ним относятся методы IndexOf, IndexOfAny, LastIndexOf и LastIndexOfAny.

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

Если необходимо выполнить поиск строки для заданного шаблона, а не конкретной подстроки, необходимо использовать регулярные выражения. Для получения дополнительной информации см. Регулярные выражения в .NET Framework.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifИзменение размера строки

Класс String включает следующие методы, отображаемые для изменения значения строки.

  • Метод Insert вставляет строку в текущий экземпляр String.

  • PadLeft вставляет одну или более вхождений указанного символа в начало строки.

  • PadRight вставляет одну или более вхождений указанного символа в начало строки.

  • Метод Remove удаляет подстроку из текущего экземпляра String.

  • Метод Replace заменяет подстроку другой подстрокой в текущем экземпляре String.

  • Методы ToLower и ToLowerInvariant преобразуют все символы в строке в символы нижнего регистра.

  • Методы ToUpper и ToUpperInvariant преобразуют все символы в строке в символы верхнего регистра.

  • Метод Trim удаляет все вхождения символа с начала и конца строки.

  • Метод TrimEnd удаляет все вхождения символа с начала и конца строки.

  • Метод TrimStart удаляет все вхождения символа с начала строки.

Важное примечаниеВажно

Все методы модификации строк возвращают новый объект String. Значение текущего экземпляра они не изменяют.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifИзвлечение подстрок из строки

Метод String.Split разделяет одну строку на несколько. Перегрузки метода позволяют указывать несколько разделителей, чтобы определить максимальное количество подстрок, извлекаемых методом, и чтобы определить, включены ли пустые строки (при прилегающих разделителях) в возвращаемые.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifОбъединение строк

Следующие методы String могут использоваться для объединения строк:

  • Метод Concat объединяет одну или более подстрок в целую строку.

  • Метод Join объединяет одну или несколько подстрок в один элемент и добавляет разделитель между всеми подстроками.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifЗначения форматирования

Метод String.Format использует функцию составного форматирования для замены одного или нескольких заполнителей в строке строковым представлением определенного объекта или значения. Метод Format часто используется для решения следующих задач.

  • Для внедрения строкового представления числового значения в строку.

  • Для внедрения строкового представления значения даты и времени в строку.

  • Для внедрения строкового представления значения перечисления в строку.

  • Для внедрения строкового представления некоторого объекта, поддерживающего интерфейс IFormattable, в строку.

  • Для выравнивания по правому или левому краю подстроки в поле внутри более длинной строки.

Дополнительные сведения об операциях форматирования и примеры см. в разделе сводки перегруженной Format.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifКопирование строка

Для создания копии строки можно вызывать следующие методы класса String:

  • Метод Clone возвращает ссылку на существующий объект String.

  • Метод Copy создает копию существующей строки.

  • Метод CopyTo копирует часть строки в массив символов.

s1wwdcbf.collapse_all(ru-ru,VS.110).gifНормализация строки

В Юникоде один символ может иметь несколько кодовых точек. Нормализация преобразует эти эквивалентные знаки в одно и то же двоичное представление. Метод String.Normalize выполняет нормализацию, а метод String.IsNormalized определяет, нормализована ли строка.

.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.

Этот тип потокобезопасен.

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв

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

Показ:
© 2015 Microsoft