Export (0) Print
Expand All

String Class

Represents text as a series of Unicode characters.

To browse the .NET Framework source code for this type, see the Reference Source.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[<Sealed>]
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type String =  
    class 
        interface IComparable 
        interface ICloneable 
        interface IConvertible 
        interface IComparable<string>
        interface IEnumerable<char>
        interface IEnumerable 
        interface IEquatable<string>
    end

The String type exposes the following members.

  NameDescription
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsString(Char*)Initializes a new instance of the String class to the value indicated by a specified pointer to an array of Unicode characters.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsString(Char[])Initializes a new instance of the String class to the value indicated by an array of Unicode characters.
Public methodSupported by the XNA FrameworkString(SByte*)Initializes a new instance of the String class to the value indicated by a pointer to an array of 8-bit signed integers.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsString(Char, Int32)Initializes a new instance of the String class to the value indicated by a specified Unicode character repeated a specified number of times.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsString(Char*, Int32, Int32)Initializes a new instance of the String class to the value indicated by a specified pointer to an array of Unicode characters, a starting character position within that array, and a length.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsString(Char[], Int32, Int32)Initializes a new instance of the String class to the value indicated by an array of Unicode characters, a starting character position within that array, and a length.
Public methodString(SByte*, Int32, Int32)Initializes a new instance of the String class to the value indicated by a specified pointer to an array of 8-bit signed integers, a starting position within that array, and a length.
Public methodString(SByte*, Int32, Int32, Encoding)Initializes a new instance of the String class to the value indicated by a specified pointer to an array of 8-bit signed integers, a starting position within that array, a length, and an Encoding object.
Top

  NameDescription
Public propertySupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCharsGets the Char object at a specified position in the current String object.
Public propertySupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLengthGets the number of characters in the current String object.
Top

  NameDescription
Public methodSupported by the XNA FrameworkCloneReturns a reference to this instance of String.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompare(String, String)Compares two specified String objects and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by the XNA FrameworkCompare(String, String, Boolean)Compares two specified String objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompare(String, String, StringComparison)Compares two specified String objects using the specified rules, and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by the XNA FrameworkCompare(String, String, Boolean, CultureInfo)Compares two specified String objects, ignoring or honoring their case, and using culture-specific information to influence the comparison, and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by Portable Class LibraryCompare(String, String, CultureInfo, CompareOptions)Compares two specified String objects using the specified comparison options and culture-specific information to influence the comparison, and returns an integer that indicates the relationship of the two strings to each other in the sort order.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompare(String, Int32, String, Int32, Int32)Compares substrings of two specified String objects and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by the XNA FrameworkCompare(String, Int32, String, Int32, Int32, Boolean)Compares substrings of two specified String objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompare(String, Int32, String, Int32, Int32, StringComparison)Compares substrings of two specified String objects using the specified rules, and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberSupported by the XNA FrameworkCompare(String, Int32, String, Int32, Int32, Boolean, CultureInfo)Compares substrings of two specified String objects, ignoring or honoring their case and using culture-specific information to influence the comparison, and returns an integer that indicates their relative position in the sort order.
Public methodStatic memberCompare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)Compares substrings of two specified String objects using the specified comparison options and culture-specific information to influence the comparison, and returns an integer that indicates the relationship of the two substrings to each other in the sort order.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompareOrdinal(String, String)Compares two specified String objects by evaluating the numeric values of the corresponding Char objects in each string.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompareOrdinal(String, Int32, String, Int32, Int32)Compares substrings of two specified String objects by evaluating the numeric values of the corresponding Char objects in each substring.
Public methodSupported by the XNA FrameworkCompareTo(Object)Compares this instance with a specified Object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified Object.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCompareTo(String)Compares this instance with a specified String object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified String.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(Object)Creates the string representation of a specified object.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(Object[])Concatenates the string representations of the elements in a specified Object array.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(IEnumerable(String))Concatenates the members of a constructed IEnumerable(T) collection of type String.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(String[])Concatenates the elements of a specified String array.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(Object, Object)Concatenates the string representations of two specified objects.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(String, String)Concatenates two specified instances of String.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(Object, Object, Object)Concatenates the string representations of three specified objects.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(String, String, String)Concatenates three specified instances of String.
Public methodStatic memberConcat(Object, Object, Object, Object)Concatenates the string representations of four specified objects and any objects specified in an optional variable length parameter list.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(String, String, String, String)Concatenates four specified instances of String.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsConcat(T)(IEnumerable(T))Concatenates the members of an IEnumerable(T) implementation.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsContainsReturns a value indicating whether a specified substring occurs within this string.
Public methodStatic memberSupported by the XNA FrameworkCopyCreates a new instance of String with the same value as a specified String.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCopyToCopies a specified number of characters from a specified position in this instance to a specified position in an array of Unicode characters.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEndsWith(String)Determines whether the end of this string instance matches the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEndsWith(String, StringComparison)Determines whether the end of this string instance matches the specified string when compared using the specified comparison option.
Public methodEndsWith(String, Boolean, CultureInfo)Determines whether the end of this string instance matches the specified string when compared using the specified culture.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEquals(Object)Determines whether this instance and a specified object, which must also be a String object, have the same value. (Overrides Object.Equals(Object).)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEquals(String)Determines whether this instance and another specified String object have the same value.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEquals(String, String)Determines whether two specified String objects have the same value.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEquals(String, StringComparison)Determines whether this string and a specified String object have the same value. A parameter specifies the culture, case, and sort rules used in the comparison.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEquals(String, String, StringComparison)Determines whether two specified String objects have the same value. A parameter specifies the culture, case, and sort rules used in the comparison.
Public methodStatic memberSupported by the XNA FrameworkFormat(String, Object)Replaces one or more format items in a specified string with the string representation of a specified object.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsFormat(String, Object[])Replaces the format item in a specified string with the string representation of a corresponding object in a specified array.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsFormat(IFormatProvider, String, Object[])Replaces the format items in a specified string with the string representations of corresponding objects in a specified array. A parameter supplies culture-specific formatting information.
Public methodStatic memberSupported by the XNA FrameworkFormat(String, Object, Object)Replaces the format items in a specified string with the string representation of two specified objects.
Public methodStatic memberSupported by the XNA FrameworkFormat(String, Object, Object, Object)Replaces the format items in a specified string with the string representation of three specified objects.
Public methodSupported by the XNA FrameworkGetEnumeratorRetrieves an object that can iterate through the individual characters in this string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsGetHashCodeReturns the hash code for this string. (Overrides Object.GetHashCode().)
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodSupported by the XNA FrameworkGetTypeCodeReturns the TypeCode for class String.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(Char)Reports the zero-based index of the first occurrence of the specified Unicode character in this string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(String)Reports the zero-based index of the first occurrence of the specified string in this instance.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(Char, Int32)Reports the zero-based index of the first occurrence of the specified Unicode character in this string. The search starts at a specified character position.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(String, Int32)Reports the zero-based index of the first occurrence of the specified string in this instance. The search starts at a specified character position.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(String, StringComparison)Reports the zero-based index of the first occurrence of the specified string in the current String object. A parameter specifies the type of search to use for the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(Char, Int32, Int32)Reports the zero-based index of the first occurrence of the specified character in this instance. The search starts at a specified character position and examines a specified number of character positions.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(String, Int32, Int32)Reports the zero-based index of the first occurrence of the specified string in this instance. The search starts at a specified character position and examines a specified number of character positions.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(String, Int32, StringComparison)Reports the zero-based index of the first occurrence of the specified string in the current String object. Parameters specify the starting search position in the current string and the type of search to use for the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOf(String, Int32, Int32, StringComparison)Reports the zero-based index of the first occurrence of the specified string in the current String object. Parameters specify the starting search position in the current string, the number of characters in the current string to search, and the type of search to use for the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOfAny(Char[])Reports the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOfAny(Char[], Int32)Reports the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at a specified character position.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIndexOfAny(Char[], Int32, Int32)Reports the zero-based index of the first occurrence in this instance of any character in a specified array of Unicode characters. The search starts at a specified character position and examines a specified number of character positions.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsInsertReturns a new string in which a specified string is inserted at a specified index position in this instance.
Public methodStatic memberSupported by the XNA FrameworkInternRetrieves the system's reference to the specified String.
Public methodStatic memberSupported by the XNA FrameworkIsInternedRetrieves a reference to a specified String.
Public methodIsNormalized()Indicates whether this string is in Unicode normalization form C.
Public methodIsNormalized(NormalizationForm)Indicates whether this string is in the specified Unicode normalization form.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIsNullOrEmptyIndicates whether the specified string is a null reference (Nothing in Visual Basic) or an Empty string.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsIsNullOrWhiteSpaceIndicates whether a specified string is a null reference (Nothing in Visual Basic), empty, or consists only of white-space characters.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsJoin(String, IEnumerable(String))Concatenates the members of a constructed IEnumerable(T) collection of type String, using the specified separator between each member.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsJoin(String, Object[])Concatenates the elements of an object array, using the specified separator between each element.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsJoin(String, String[])Concatenates all the elements of a string array, using the specified separator between each element.
Public methodStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsJoin(String, String[], Int32, Int32)Concatenates the specified elements of a string array, using the specified separator between each element.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsJoin(T)(String, IEnumerable(T))Concatenates the members of a collection, using the specified separator between each member.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(Char)Reports the zero-based index position of the last occurrence of a specified Unicode character within this instance.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(String)Reports the zero-based index position of the last occurrence of a specified string within this instance.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(Char, Int32)Reports the zero-based index position of the last occurrence of a specified Unicode character within this instance. The search starts at a specified character position and proceeds backward toward the beginning of the string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(String, Int32)Reports the zero-based index position of the last occurrence of a specified string within this instance. The search starts at a specified character position and proceeds backward toward the beginning of the string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(String, StringComparison)Reports the zero-based index of the last occurrence of a specified string within the current String object. A parameter specifies the type of search to use for the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(Char, Int32, Int32)Reports the zero-based index position of the last occurrence of the specified Unicode character in a substring within this instance. The search starts at a specified character position and proceeds backward toward the beginning of the string for a specified number of character positions.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(String, Int32, Int32)Reports the zero-based index position of the last occurrence of a specified string within this instance. The search starts at a specified character position and proceeds backward toward the beginning of the string for a specified number of character positions.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(String, Int32, StringComparison)Reports the zero-based index of the last occurrence of a specified string within the current String object. The search starts at a specified character position and proceeds backward toward the beginning of the string. A parameter specifies the type of comparison to perform when searching for the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOf(String, Int32, Int32, StringComparison)Reports the zero-based index position of the last occurrence of a specified string within this instance. The search starts at a specified character position and proceeds backward toward the beginning of the string for the specified number of character positions. A parameter specifies the type of comparison to perform when searching for the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOfAny(Char[])Reports the zero-based index position of the last occurrence in this instance of one or more characters specified in a Unicode array.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOfAny(Char[], Int32)Reports the zero-based index position of the last occurrence in this instance of one or more characters specified in a Unicode array. The search starts at a specified character position and proceeds backward toward the beginning of the string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsLastIndexOfAny(Char[], Int32, Int32)Reports the zero-based index position of the last occurrence in this instance of one or more characters specified in a Unicode array. The search starts at a specified character position and proceeds backward toward the beginning of the string for a specified number of character positions.
Public methodNormalize()Returns a new string whose textual value is the same as this string, but whose binary representation is in Unicode normalization form C.
Public methodNormalize(NormalizationForm)Returns a new string whose textual value is the same as this string, but whose binary representation is in the specified Unicode normalization form.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsPadLeft(Int32)Returns a new string that right-aligns the characters in this instance by padding them with spaces on the left, for a specified total length.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsPadLeft(Int32, Char)Returns a new string that right-aligns the characters in this instance by padding them on the left with a specified Unicode character, for a specified total length.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsPadRight(Int32)Returns a new string that left-aligns the characters in this string by padding them with spaces on the right, for a specified total length.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsPadRight(Int32, Char)Returns a new string that left-aligns the characters in this string by padding them on the right with a specified Unicode character, for a specified total length.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsRemove(Int32)Returns a new string in which all the characters in the current instance, beginning at a specified position and continuing through the last position, have been deleted.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsRemove(Int32, Int32)Returns a new string in which a specified number of characters in the current instance beginning at a specified position have been deleted.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsReplace(Char, Char)Returns a new string in which all occurrences of a specified Unicode character in this instance are replaced with another specified Unicode character.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsReplace(String, String)Returns a new string in which all occurrences of a specified string in the current instance are replaced with another specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsSplit(Char[])Returns a string array that contains the substrings in this instance that are delimited by elements of a specified Unicode character array.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsSplit(Char[], Int32)Returns a string array that contains the substrings in this instance that are delimited by elements of a specified Unicode character array. A parameter specifies the maximum number of substrings to return.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsSplit(Char[], StringSplitOptions)Returns a string array that contains the substrings in this string that are delimited by elements of a specified Unicode character array. A parameter specifies whether to return empty array elements.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsSplit(String[], StringSplitOptions)Returns a string array that contains the substrings in this string that are delimited by elements of a specified string array. A parameter specifies whether to return empty array elements.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsSplit(Char[], Int32, StringSplitOptions)Returns a string array that contains the substrings in this string that are delimited by elements of a specified Unicode character array. Parameters specify the maximum number of substrings to return and whether to return empty array elements.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsSplit(String[], Int32, StringSplitOptions)Returns a string array that contains the substrings in this string that are delimited by elements of a specified string array. Parameters specify the maximum number of substrings to return and whether to return empty array elements.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsStartsWith(String)Determines whether the beginning of this string instance matches the specified string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsStartsWith(String, StringComparison)Determines whether the beginning of this string instance matches the specified string when compared using the specified comparison option.
Public methodStartsWith(String, Boolean, CultureInfo)Determines whether the beginning of this string instance matches the specified string when compared using the specified culture.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsSubstring(Int32)Retrieves a substring from this instance. The substring starts at a specified character position and continues to the end of the string.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsSubstring(Int32, Int32)Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsToCharArray()Copies the characters in this instance to a Unicode character array.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsToCharArray(Int32, Int32)Copies the characters in a specified substring in this instance to a Unicode character array.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsToLower()Returns a copy of this string converted to lowercase.
Public methodSupported by the XNA FrameworkToLower(CultureInfo)Returns a copy of this string converted to lowercase, using the casing rules of the specified culture.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsToLowerInvariantReturns a copy of this String object converted to lowercase using the casing rules of the invariant culture.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsToString()Returns this instance of String; no actual conversion is performed. (Overrides Object.ToString().)
Public methodSupported by the XNA FrameworkToString(IFormatProvider)Returns this instance of String; no actual conversion is performed.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsToUpper()Returns a copy of this string converted to uppercase.
Public methodSupported by the XNA FrameworkToUpper(CultureInfo)Returns a copy of this string converted to uppercase, using the casing rules of the specified culture.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsToUpperInvariantReturns a copy of this String object converted to uppercase using the casing rules of the invariant culture.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsTrim()Removes all leading and trailing white-space characters from the current String object.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsTrim(Char[])Removes all leading and trailing occurrences of a set of characters specified in an array from the current String object.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsTrimEndRemoves all trailing occurrences of a set of characters specified in an array from the current String object.
Public methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsTrimStartRemoves all leading occurrences of a set of characters specified in an array from the current String object.
Top

  NameDescription
Public operatorStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEqualityDetermines whether two specified strings have the same value.
Public operatorStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsInequalityDetermines whether two specified strings have different values.
Top

  NameDescription
Public Extension MethodSupported by the XNA FrameworkAggregate(Char)(Func(Char, Char, Char))Overloaded. Applies an accumulator function over a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAggregate(Char, TAccumulate)(TAccumulate, Func(TAccumulate, Char, TAccumulate))Overloaded. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAggregate(Char, TAccumulate, TResult)(TAccumulate, Func(TAccumulate, Char, TAccumulate), Func(TAccumulate, TResult))Overloaded. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAll(Char)Determines whether all elements of a sequence satisfy a condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAny(Char)()Overloaded. Determines whether a sequence contains any elements. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAny(Char)(Func(Char, Boolean))Overloaded. Determines whether any element of a sequence satisfies a condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAsEnumerable(Char)Returns the input typed as IEnumerable(T). (Defined by Enumerable.)
Public Extension MethodSupported by Portable Class LibrarySupported in .NET for Windows Store appsAsParallel()Overloaded. Enables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension MethodAsParallel(Char)()Overloaded. Enables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension MethodSupported by Portable Class LibrarySupported in .NET for Windows Store appsAsQueryable()Overloaded. Converts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension MethodAsQueryable(Char)()Overloaded. Converts a generic IEnumerable(T) to a generic IQueryable(T). (Defined by Queryable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Int32))Overloaded. Computes the average of a sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Nullable(Int32)))Overloaded. Computes the average of a sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Int64))Overloaded. Computes the average of a sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Nullable(Int64)))Overloaded. Computes the average of a sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Single))Overloaded. Computes the average of a sequence of Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Nullable(Single)))Overloaded. Computes the average of a sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Double))Overloaded. Computes the average of a sequence of Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Nullable(Double)))Overloaded. Computes the average of a sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Decimal))Overloaded. Computes the average of a sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkAverage(Char)(Func(Char, Nullable(Decimal)))Overloaded. Computes the average of a sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsCast(TResult)Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkConcat(Char)Concatenates two sequences. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkContains(Char)(Char)Overloaded. Determines whether a sequence contains a specified element by using the default equality comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkContains(Char)(Char, IEqualityComparer(Char))Overloaded. Determines whether a sequence contains a specified element by using a specified IEqualityComparer(T). (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkCount(Char)()Overloaded. Returns the number of elements in a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkCount(Char)(Func(Char, Boolean))Overloaded. Returns a number that represents how many elements in the specified sequence satisfy a condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkDefaultIfEmpty(Char)()Overloaded. Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkDefaultIfEmpty(Char)(Char)Overloaded. Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkDistinct(Char)()Overloaded. Returns distinct elements from a sequence by using the default equality comparer to compare values. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkDistinct(Char)(IEqualityComparer(Char))Overloaded. Returns distinct elements from a sequence by using a specified IEqualityComparer(T) to compare values. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkElementAt(Char)Returns the element at a specified index in a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkElementAtOrDefault(Char)Returns the element at a specified index in a sequence or a default value if the index is out of range. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkExcept(Char)(IEnumerable(Char))Overloaded. Produces the set difference of two sequences by using the default equality comparer to compare values. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkExcept(Char)(IEnumerable(Char), IEqualityComparer(Char))Overloaded. Produces the set difference of two sequences by using the specified IEqualityComparer(T) to compare values. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkFirst(Char)()Overloaded. Returns the first element of a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkFirst(Char)(Func(Char, Boolean))Overloaded. Returns the first element in a sequence that satisfies a specified condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkFirstOrDefault(Char)()Overloaded. Returns the first element of a sequence, or a default value if the sequence contains no elements. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkFirstOrDefault(Char)(Func(Char, Boolean))Overloaded. Returns the first element of the sequence that satisfies a condition or a default value if no such element is found. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey)(Func(Char, TKey))Overloaded. Groups the elements of a sequence according to a specified key selector function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey)(Func(Char, TKey), IEqualityComparer(TKey))Overloaded. Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey, TElement)(Func(Char, TKey), Func(Char, TElement))Overloaded. Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey, TResult)(Func(Char, TKey), Func(TKey, IEnumerable(Char), TResult))Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey, TElement)(Func(Char, TKey), Func(Char, TElement), IEqualityComparer(TKey))Overloaded. Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey, TResult)(Func(Char, TKey), Func(TKey, IEnumerable(Char), TResult), IEqualityComparer(TKey))Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey, TElement, TResult)(Func(Char, TKey), Func(Char, TElement), Func(TKey, IEnumerable(TElement), TResult))Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupBy(Char, TKey, TElement, TResult)(Func(Char, TKey), Func(Char, TElement), Func(TKey, IEnumerable(TElement), TResult), IEqualityComparer(TKey))Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupJoin(Char, TInner, TKey, TResult)(IEnumerable(TInner), Func(Char, TKey), Func(TInner, TKey), Func(Char, IEnumerable(TInner), TResult))Overloaded. Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkGroupJoin(Char, TInner, TKey, TResult)(IEnumerable(TInner), Func(Char, TKey), Func(TInner, TKey), Func(Char, IEnumerable(TInner), TResult), IEqualityComparer(TKey))Overloaded. Correlates the elements of two sequences based on key equality and groups the results. A specified IEqualityComparer(T) is used to compare keys. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkIntersect(Char)(IEnumerable(Char))Overloaded. Produces the set intersection of two sequences by using the default equality comparer to compare values. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkIntersect(Char)(IEnumerable(Char), IEqualityComparer(Char))Overloaded. Produces the set intersection of two sequences by using the specified IEqualityComparer(T) to compare values. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkJoin(Char, TInner, TKey, TResult)(IEnumerable(TInner), Func(Char, TKey), Func(TInner, TKey), Func(Char, TInner, TResult))Overloaded. Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkJoin(Char, TInner, TKey, TResult)(IEnumerable(TInner), Func(Char, TKey), Func(TInner, TKey), Func(Char, TInner, TResult), IEqualityComparer(TKey))Overloaded. Correlates the elements of two sequences based on matching keys. A specified IEqualityComparer(T) is used to compare keys. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkLast(Char)()Overloaded. Returns the last element of a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkLast(Char)(Func(Char, Boolean))Overloaded. Returns the last element of a sequence that satisfies a specified condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkLastOrDefault(Char)()Overloaded. Returns the last element of a sequence, or a default value if the sequence contains no elements. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkLastOrDefault(Char)(Func(Char, Boolean))Overloaded. Returns the last element of a sequence that satisfies a condition or a default value if no such element is found. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkLongCount(Char)()Overloaded. Returns an Int64 that represents the total number of elements in a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkLongCount(Char)(Func(Char, Boolean))Overloaded. Returns an Int64 that represents how many elements in a sequence satisfy a condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)()Overloaded. Returns the maximum value in a generic sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Int32))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Int32 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Nullable(Int32)))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Int32 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Int64))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Int64 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Nullable(Int64)))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Int64 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Single))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Single value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Nullable(Single)))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Single value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Double))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Double value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Nullable(Double)))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Double value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Decimal))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Decimal value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char)(Func(Char, Nullable(Decimal)))Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Decimal value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMax(Char, TResult)(Func(Char, TResult))Overloaded. Invokes a transform function on each element of a generic sequence and returns the maximum resulting value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)()Overloaded. Returns the minimum value in a generic sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Int32))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Int32 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Nullable(Int32)))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Int32 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Int64))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Int64 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Nullable(Int64)))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Int64 value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Single))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Single value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Nullable(Single)))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Single value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Double))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Double value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Nullable(Double)))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Double value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Decimal))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Decimal value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char)(Func(Char, Nullable(Decimal)))Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Decimal value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkMin(Char, TResult)(Func(Char, TResult))Overloaded. Invokes a transform function on each element of a generic sequence and returns the minimum resulting value. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsOfType(TResult)Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkOrderBy(Char, TKey)(Func(Char, TKey))Overloaded. Sorts the elements of a sequence in ascending order according to a key. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkOrderBy(Char, TKey)(Func(Char, TKey), IComparer(TKey))Overloaded. Sorts the elements of a sequence in ascending order by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkOrderByDescending(Char, TKey)(Func(Char, TKey))Overloaded. Sorts the elements of a sequence in descending order according to a key. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkOrderByDescending(Char, TKey)(Func(Char, TKey), IComparer(TKey))Overloaded. Sorts the elements of a sequence in descending order by using a specified comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkReverse(Char)Inverts the order of the elements in a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSelect(Char, TResult)(Func(Char, TResult))Overloaded. Projects each element of a sequence into a new form. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSelect(Char, TResult)(Func(Char, Int32, TResult))Overloaded. Projects each element of a sequence into a new form by incorporating the element's index. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSelectMany(Char, TResult)(Func(Char, IEnumerable(TResult)))Overloaded. Projects each element of a sequence to an IEnumerable(T) and flattens the resulting sequences into one sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSelectMany(Char, TResult)(Func(Char, Int32, IEnumerable(TResult)))Overloaded. Projects each element of a sequence to an IEnumerable(T), and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSelectMany(Char, TCollection, TResult)(Func(Char, Int32, IEnumerable(TCollection)), Func(Char, TCollection, TResult))Overloaded. Projects each element of a sequence to an IEnumerable(T), flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. The index of each source element is used in the intermediate projected form of that element. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSelectMany(Char, TCollection, TResult)(Func(Char, IEnumerable(TCollection)), Func(Char, TCollection, TResult))Overloaded. Projects each element of a sequence to an IEnumerable(T), flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSequenceEqual(Char)(IEnumerable(Char))Overloaded. Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSequenceEqual(Char)(IEnumerable(Char), IEqualityComparer(Char))Overloaded. Determines whether two sequences are equal by comparing their elements by using a specified IEqualityComparer(T). (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSingle(Char)()Overloaded. Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSingle(Char)(Func(Char, Boolean))Overloaded. Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSingleOrDefault(Char)()Overloaded. Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSingleOrDefault(Char)(Func(Char, Boolean))Overloaded. Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSkip(Char)Bypasses a specified number of elements in a sequence and then returns the remaining elements. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSkipWhile(Char)(Func(Char, Boolean))Overloaded. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSkipWhile(Char)(Func(Char, Int32, Boolean))Overloaded. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Int32))Overloaded. Computes the sum of the sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Nullable(Int32)))Overloaded. Computes the sum of the sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Int64))Overloaded. Computes the sum of the sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Nullable(Int64)))Overloaded. Computes the sum of the sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Single))Overloaded. Computes the sum of the sequence of Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Nullable(Single)))Overloaded. Computes the sum of the sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Double))Overloaded. Computes the sum of the sequence of Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Nullable(Double)))Overloaded. Computes the sum of the sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Decimal))Overloaded. Computes the sum of the sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkSum(Char)(Func(Char, Nullable(Decimal)))Overloaded. Computes the sum of the sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkTake(Char)Returns a specified number of contiguous elements from the start of a sequence. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkTakeWhile(Char)(Func(Char, Boolean))Overloaded. Returns elements from a sequence as long as a specified condition is true. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkTakeWhile(Char)(Func(Char, Int32, Boolean))Overloaded. Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToArray(Char)Creates an array from a IEnumerable(T). (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToDictionary(Char, TKey)(Func(Char, TKey))Overloaded. Creates a Dictionary(TKey, TValue) from an IEnumerable(T) according to a specified key selector function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToDictionary(Char, TKey)(Func(Char, TKey), IEqualityComparer(TKey))Overloaded. Creates a Dictionary(TKey, TValue) from an IEnumerable(T) according to a specified key selector function and key comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToDictionary(Char, TKey, TElement)(Func(Char, TKey), Func(Char, TElement))Overloaded. Creates a Dictionary(TKey, TValue) from an IEnumerable(T) according to specified key selector and element selector functions. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToDictionary(Char, TKey, TElement)(Func(Char, TKey), Func(Char, TElement), IEqualityComparer(TKey))Overloaded. Creates a Dictionary(TKey, TValue) from an IEnumerable(T) according to a specified key selector function, a comparer, and an element selector function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToList(Char)Creates a List(T) from an IEnumerable(T). (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToLookup(Char, TKey)(Func(Char, TKey))Overloaded. Creates a Lookup(TKey, TElement) from an IEnumerable(T) according to a specified key selector function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToLookup(Char, TKey)(Func(Char, TKey), IEqualityComparer(TKey))Overloaded. Creates a Lookup(TKey, TElement) from an IEnumerable(T) according to a specified key selector function and key comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToLookup(Char, TKey, TElement)(Func(Char, TKey), Func(Char, TElement))Overloaded. Creates a Lookup(TKey, TElement) from an IEnumerable(T) according to specified key selector and element selector functions. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkToLookup(Char, TKey, TElement)(Func(Char, TKey), Func(Char, TElement), IEqualityComparer(TKey))Overloaded. Creates a Lookup(TKey, TElement) from an IEnumerable(T) according to a specified key selector function, a comparer and an element selector function. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkUnion(Char)(IEnumerable(Char))Overloaded. Produces the set union of two sequences by using the default equality comparer. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkUnion(Char)(IEnumerable(Char), IEqualityComparer(Char))Overloaded. Produces the set union of two sequences by using a specified IEqualityComparer(T). (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkWhere(Char)(Func(Char, Boolean))Overloaded. Filters a sequence of values based on a predicate. (Defined by Enumerable.)
Public Extension MethodSupported by the XNA FrameworkWhere(Char)(Func(Char, Int32, Boolean))Overloaded. Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function. (Defined by Enumerable.)
Public Extension MethodZip(Char, TSecond, TResult)Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results. (Defined by Enumerable.)
Top

  NameDescription
Public fieldStatic memberSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsEmptyRepresents the empty string. This field is read-only.
Top

  NameDescription
Explicit interface implemetationPrivate methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsIComparable.CompareToCompares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToBooleanInfrastructure. For a description of this member, see ToBoolean.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToByteInfrastructure. For a description of this member, see ToByte.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToCharInfrastructure. For a description of this member, see ToChar.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToDateTimeInfrastructure. For a description of this member, see ToDateTime.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToDecimalInfrastructure. For a description of this member, see ToDecimal.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToDoubleInfrastructure. For a description of this member, see ToDouble.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToInt16Infrastructure. For a description of this member, see ToInt16.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToInt32Infrastructure. For a description of this member, see ToInt32.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToInt64Infrastructure. For a description of this member, see ToInt64.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToSByteInfrastructure. For a description of this member, see ToSByte.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToSingleInfrastructure. For a description of this member, see ToSingle.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToTypeInfrastructure. For a description of this member, see ToType.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToUInt16Infrastructure. For a description of this member, see ToUInt16.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToUInt32Infrastructure. For a description of this member, see ToUInt32.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIConvertible.ToUInt64Infrastructure. For a description of this member, see ToUInt64.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkIEnumerable(Char).GetEnumeratorReturns an enumerator that iterates through the current String object.
Explicit interface implemetationPrivate methodSupported by the XNA FrameworkSupported by Portable Class LibrarySupported in .NET for Windows Store appsIEnumerable.GetEnumeratorReturns an enumerator that iterates through the current String object.
Top

NoteNote

To view the .NET Framework source code for this type, see the Reference Source. You can browse through the source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging; see instructions.

A string is a sequential collection of Unicode characters that is used to represent text. A String object is a sequential collection of System.Char objects that represent a string. The value of the String object is the content of the sequential collection, and that value is immutable (that is, it is read-only). For more information about the immutability of strings, see the Immutability and the StringBuilder class section later in this topic. The maximum size of a String object in memory is 2 GB, or about 1 billion characters.

In this section:

Instantiating a String object
Char objects and Unicode characters
Strings and embedded null characters
Strings and indexes
Null strings and empty strings
Immutability and the StringBuilder class
Ordinal vs. culture-sensitive operations
Normalization
String operations by category

Instantiating a String object

You can instantiate a String object in the following ways:

  • By assigning a string literal to a String variable. This is the most commonly used method for creating a string. The following example uses assignment to create several strings. Note that in C#, because the backslash (\) is an escape character, literal backslashes in a string must be escaped or the entire string must be @-quoted.

    No code example is currently available or this language may not be supported.
  • By calling a String class constructor. The following example instantiates strings by calling several class constructors. Note that some of the constructors include pointers to character arrays or signed byte arrays as parameters. Visual Basic does not support calls to these constructors. For detailed information about String constructors, see the String constructor summary.

    No code example is currently available or this language may not be supported.
  • By using the string concatenation operator (+ in C# and & or + in Visual Basic) to create a single string from any combination of String instances and string literals. The following example illustrates the use of the string concatenation operator.

    No code example is currently available or this language may not be supported.
  • By retrieving a property or calling a method that returns a string. The following example uses the methods of the String class to extract a substring from a larger string.

    No code example is currently available or this language may not be supported.
  • By calling a formatting method to convert a value or object to its string representation. The following example uses the composite formatting feature to embed the string representation of two objects into a string.

    No code example is currently available or this language may not be supported.

Char objects and Unicode characters

Each character in a string is defined by a Unicode scalar value, also called a Unicode code point or the ordinal (numeric) value of the Unicode character. Each code point is encoded by using UTF-16 encoding, and the numeric value of each element of the encoding is represented by a Char object.

A single Char object usually represents a single code point; that is, the numeric value of the Char equals the code point. For example, the code point for the character "a" is U+0061. However, a code point might require more than one encoded element (more than one Char object). The Unicode standard defines three types of characters that correspond to multiple Char objects: graphemes, Unicode supplementary code points, and characters in the supplementary planes.

  • A grapheme is represented by a base character followed by one or more combining characters. For example, the character ä is represented by a Char object whose code point is U+0061 followed by a Char object whose code point is U+0308. This character can also be defined by a single Char object that has a code point of U+00E4. As the following example shows, a culture-sensitive comparison for equality indicates that these two representations are equal, although an ordinary ordinal comparison does not. However, if the two strings are normalized, an ordinal comparison also indicates that they are equal. (For more information on normalizing strings, see the Normalization section.)

    No code example is currently available or this language may not be supported.
  • A Unicode supplementary code point (a surrogate pair) is represented by a Char object whose code point is a high surrogate followed by a Char object whose code point is a low surrogate. The code units of high surrogates range from U+D800 to U+DBFF. The code units of low surrogates range from U+DC00 to U+DFFF. Surrogate pairs are used to represent characters in the 16 Unicode supplementary planes. The following example creates a surrogate character and passes it to the Char.IsSurrogatePair(Char, Char) method to determine whether it is a surrogate pair.

    No code example is currently available or this language may not be supported.

Strings and embedded null characters

In the .NET Framework, a String object can include embedded null characters, which count as a part of the string's length. However, in some languages such as C and C++, a null character indicates the end of a string; it is not considered a part of the string and is not counted as part of the string's length. This means that the following common assumptions that C and C++ programmers or libraries written in C or C++ might make about strings are not necessarily valid when applied to String objects:

  • The value returned by the strlen or wcslen functions does not necessarily equal String.Length.

  • The string created by the strcpy_s or wcscpy_s functions is not necessarily identical to the string created by the String.Copy method.

You should ensure that native C and C++ code that instantiates String objects, and code that is passed String objects through platform invoke, do not assume that an embedded null character marks the end of the string.

Embedded null characters in a string are also treated differently when a string is sorted (or compared) and when a string is searched. Null characters are ignored when performing culture-sensitive comparisons between two strings, including comparisons using the invariant culture. They are considered only for ordinal or case-insensitive ordinal comparisons. On the other hand, embedded null characters are always considered when searching a string with methods such as Contains, StartsWith, and IndexOf.

Strings and indexes

An index is the position of a Char object (not a Unicode character) in a String. An index is a zero-based, nonnegative number that starts from the first position in the string, which is index position zero. A number of search methods, such as IndexOf and LastIndexOf, return the index of a character or substring in the string instance.

The Chars property lets you access individual Char objects by their index position in the string. Because the Chars property is the default property (in Visual Basic) or the indexer (in C#), you can access the individual Char objects in a string by using code such as the following. This code looks for white space or punctuation characters in a string to determine how many words the string contains.

No code example is currently available or this language may not be supported.

Because the String class implements the IEnumerable interface, you can also iterate through the Char objects in a string by using a foreach construct, as the following example shows.

No code example is currently available or this language may not be supported.

Consecutive index values might not correspond to consecutive Unicode characters, because a Unicode character might be encoded as more than one Char object. In particular, a string may contain multi-character units of text that are formed by a base character followed by one or more combining characters or by surrogate pairs. To work with Unicode characters instead of Char objects, use the System.Globalization.StringInfo and TextElementEnumerator classes. The following example illustrates the difference between code that works with Char objects and code that works with Unicode characters. It compares the number of characters or text elements in each word of a sentence. The string includes two sequences of a base character followed by a combining character.

No code example is currently available or this language may not be supported.

This example works with text elements by using the StringInfo.GetTextElementEnumerator method and the TextElementEnumerator class to enumerate all the text elements in a string. You can also retrieve an array that contains the starting index of each text element by calling the StringInfo.ParseCombiningCharacters method.

For more information about working with units of text rather than individual Char values, see the StringInfo class.

Null strings and empty strings

A string that has been declared but has not been assigned a value is a null reference (Nothing in Visual Basic). Attempting to call methods on that string throws a NullReferenceException. A null string is different from an empty string, which is a string whose value is "" or String.Empty. In some cases, passing either a null string or an empty string as an argument in a method call throws an exception. For example, passing a null string to the Int32.Parse method throws an ArgumentNullException, and passing an empty string throws a FormatException. In other cases, a method argument can be either a null string or an empty string. For example, if you are providing an IFormattable implementation for a class, you want to equate both a null string and an empty string with the general ("G") format specifier.

The String class includes the following two convenience methods that enable you to test whether a string is a null reference (Nothing in Visual Basic) or empty:

  • IsNullOrEmpty, which indicates whether a string is either a null reference (Nothing in Visual Basic) or is equal to String.Empty. This method eliminates the need to use code such as the following:

    No code example is currently available or this language may not be supported.
  • IsNullOrWhiteSpace, which indicates whether a string is a null reference (Nothing in Visual Basic), equals String.Empty, or consists exclusively of white-space characters. This method eliminates the need to use code such as the following:

    No code example is currently available or this language may not be supported.

The following example uses the IsNullOrEmpty method in the IFormattable.ToString implementation of a custom Temperature class. The method supports the "G", "C", "F", and "K" format strings. If an empty format string or a format string whose value is a null reference (Nothing in Visual Basic) is passed to the method, its value is changed to the "G" format string.

No code example is currently available or this language may not be supported.

Immutability and the StringBuilder class

A String object is called immutable (read-only), because its value cannot be modified after it has been created. Methods that appear to modify a String object actually return a new String object that contains the modification.

Because strings are immutable, string manipulation routines that perform repeated additions or deletions to what appears to be a single string can exact a significant performance penalty. For example, the following code uses a random number generator to create a string with 1000 characters in the range 0x0001 to 0x052F. Although the code appears to use string concatenation to append a new character to the existing string named str, it actually creates a new String object for each concatenation operation.

No code example is currently available or this language may not be supported.

You can use the StringBuilder class instead of the String class for operations that make multiple changes to the value of a string. Unlike instances of the String class, StringBuilder objects are mutable; when you concatenate, append, or delete substrings from a string, the operations are performed on a single string. When you have finished modifying the value of a StringBuilder object, you can call its StringBuilder.ToString method to convert it to a string. The following example replaces the String used in the previous example to concatenate 1000 random characters in the range to 0x0001 to 0x052F with a StringBuilder object.

No code example is currently available or this language may not be supported.

Ordinal vs. culture-sensitive operations

Members of the String class perform either ordinal or culture-sensitive (linguistic) operations on a String object. An ordinal operation acts on the numeric value of each Char object. A culture-sensitive operation acts on the value of the String object, and takes culture-specific casing, sorting, formatting, and parsing rules into account. Culture-sensitive operations execute in the context of an explicitly declared culture or the implicit current culture. The two kinds of operations can produce very different results when they are performed on the same string.

The .NET Framework also supports culture-insensitive linguistic string operations by using the invariant culture (CultureInfo.InvariantCulture), which is loosely based on the culture settings of the English language independent of region. Unlike other System.Globalization.CultureInfo settings, the settings of the invariant culture are guaranteed to remain consistent on a single computer, from system to system, and across versions of the .NET Framework. The invariant culture can be seen as a kind of black box that ensures stability of string comparisons and ordering across all cultures.

Security noteSecurity Note

If your application makes a security decision about a symbolic identifier such as a file name or named pipe, or about persisted data such as the text-based data in an XML file, the operation should use an ordinal comparison instead of a culture-sensitive comparison. This is because a culture-sensitive comparison can yield different results depending on the culture in effect, whereas an ordinal comparison depends solely on the binary value of the compared characters.

Important noteImportant

Most methods that perform string operations include an overload that has a parameter of type StringComparison, which enables you to specify whether the method performs an ordinal or culture-sensitive operation. In general, you should call this overload to make the intent of your method call clear. For best practices and guidance for using ordinal and culture-sensitive operations on strings, see Best Practices for Using Strings in the .NET Framework.

Operations for casing, parsing and formatting, comparison and sorting, and testing for equality can be either ordinal or culture-sensitive. The following sections discuss each category of operation.

TipTip

You should always call a method overload that makes the intent of your method call clear. For example, instead of calling the Compare(String, String) method to perform a culture-sensitive comparison of two strings by using the conventions of the current culture, you should call the Compare(String, String, StringComparison) method with a value of StringComparison.CurrentCulture for the comparisonType argument. For more information, see Best Practices for Using Strings in the .NET Framework.

Casing rules determine how to change the capitalization of a Unicode character; for example, from lowercase to uppercase. Often, a casing operation is performed before a string comparison. For example, a string might be converted to uppercase so that it can be compared with another uppercase string. You can convert the characters in a string to lowercase by calling the ToLower or ToLowerInvariant method, and you can convert them to uppercase by calling the ToUpper or ToUpperInvariant method. In addition, you can use the TextInfo.ToTitleCase method to convert a string to title case.

Casing operations can be based on the rules of the current culture, a specified culture, or the invariant culture. Because case mappings can vary depending on the culture used, the result of casing operations can vary based on culture. The actual differences in casing are of three kinds:

  • Differences in the case mapping of LATIN CAPITAL LETTER I (U+0049), LATIN SMALL LETTER I (U+0069), LATIN CAPITAL LETTER I WITH DOT ABOVE (U+0130), and LATIN SMALL LETTER DOTLESS I (U+0131). In the tr-TR (Turkish (Turkey)) and az-Latn-AZ (Azerbaijan, Latin) cultures, and in the tr, az, and az-Latn neutral cultures, the lowercase equivalent of LATIN CAPITAL LETTER I is LATIN SMALL LETTER DOTLESS I, and the uppercase equivalent of LATIN SMALL LETTER I is LATIN CAPITAL LETTER I WITH DOT ABOVE. In all other cultures, including the invariant culture, LATIN SMALL LETTER I and LATIN CAPITAL LETTER I are lowercase and uppercase equivalents.

    The following example demonstrates how a string comparison designed to prevent file system access can fail if it relies on a culture-sensitive casing comparison. (The casing conventions of the invariant culture should have been used.)

    No code example is currently available or this language may not be supported.
  • Differences in case mappings between the invariant culture and all other cultures. In these cases, using the casing rules of the invariant culture to change a character to uppercase or lowercase returns the same character. For all other cultures, it returns a different character. Some of the affected characters are listed in the following table.

    Character

    If changed to

    Returns

    MICRON SIGN (U+00B5)

    Uppercase

    GREEK CAPITAL LETTER MU (U+-39C)

    LATIN CAPITAL LETTER I WITH DOT ABOVE (U+0130)

    Lowercase

    LATIN SMALL LETTER I (U+0069)

    LATIN SMALL LETTER DOTLESS I (U+0131)

    Uppercase

    LATIN CAPITAL LETTER I (U+0049)

    LATIN SMALL LETTER LONG S (U+017F)

    Uppercase

    LATIN CAPITAL LETTER S (U+0053)

    LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON (U+01C5)

    Lowercase

    LATIN SMALL LETTER DZ WITH CARON (U+01C6)

    COMBINING GREEK YPOGEGRAMMENI (U+0345)

    Uppercase

    GREEK CAPITAL LETTER IOTA (U+0399)

  • Differences in case mappings of two-letter mixed-case pairs in the ASCII character range. In most cultures, a two-letter mixed-case pair is equal to the equivalent two-letter uppercase or lowercase pair. This is not true for the following two-letter pairs in the following cultures, because in each case they are compared to a digraph:

    • "lJ" and "nJ" in the hr-HR (Croatian (Croatia)) culture.

    • "cH" in the cs-CZ (Czech (Czech Republic)) and sk-SK (Slovak (Slovakia)) cultures.

    • "aA" in the da-DK (Danish (Denmark)) culture.

    • "cS", "dZ", "dZS", "nY", "sZ", "tY", and "zS" in the hu-HU (Hungarian (Hungary)) culture.

    • "cH" and "lL" in the es-ES_tradnl (Spanish (Spain, Traditional Sort)) culture.

    • "cH", "gI", "kH", "nG" "nH", "pH", "qU', "tH", and "tR" in the vi-VN (Vietnamese (Vietnam)) culture.

    However, it is unusual to encounter a situation in which a culture-sensitive comparison of these pairs creates problems, because these pairs are uncommon in fixed strings or identifiers.

The following example illustrates some of the differences in casing rules between cultures when converting strings to uppercase.

No code example is currently available or this language may not be supported.

Formatting and parsing are inverse operations. Formatting rules determine how to convert a value, such as a date and time or a number, to its string representation, whereas parsing rules determine how to convert a string representation to a value such as a date and time. Both formatting and parsing rules are dependent on cultural conventions. The following example illustrates the ambiguity that can arise when interpreting a culture-specific date string. Without knowing the conventions of the culture that was used to produce a date string, it is not possible to know whether 03/01/2011, 3/1/2011, and 01/03/2011 represent January 3, 2011 or March 1, 2011.

No code example is currently available or this language may not be supported.

Similarly, as the following example shows, a single string can produce different dates depending on the culture whose conventions are used in the parsing operation.

No code example is currently available or this language may not be supported.

Conventions for comparing and sorting strings vary from culture to culture. For example, the sort order may be based on phonetics or on the visual representation of characters. In East Asian languages, characters are sorted by the stroke and radical of ideographs. Sorting also depends on the order languages and cultures use for the alphabet. For example, the Danish language has an "Æ" character that it sorts after "Z" in the alphabet. In addition, comparisons can be case-sensitive or case-insensitive, and in some cases casing rules also differ by culture. Ordinal comparison, on the other hand, uses the Unicode code points of individual characters in a string when comparing and sorting strings.

Sort rules determine the alphabetic order of Unicode characters and how two strings compare to each other. For example, the String.Compare(String, String, StringComparison) method compares two strings based on the StringComparison parameter. If the parameter value is StringComparison.CurrentCulture, the method performs a linguistic comparison that uses the conventions of the current culture; if the parameter value is StringComparison.Ordinal, the method performs an ordinal comparison. Consequently, as the following example shows, if the current culture is U.S. English, the first call to the String.Compare(String, String, StringComparison) method (using culture-sensitive comparison) considers "a" less than "A", but the second call to the same method (using ordinal comparison) considers "a" greater than "A".

No code example is currently available or this language may not be supported.

The .NET Framework supports word, string, and ordinal sort rules:

  • A word sort performs a culture-sensitive comparison of strings in which certain nonalphanumeric Unicode characters might have special weights assigned to them. For example, the hyphen (-) might have a very small weight assigned to it so that "coop" and "co-op" appear next to each other in a sorted list. For a list of the String methods that compare two strings using word sort rules, see the String operations by category section.

  • A string sort also performs a culture-sensitive comparison. It is similar to a word sort, except that there are no special cases, and all nonalphanumeric symbols come before all alphanumeric Unicode characters. Two strings can be compared using string sort rules by calling the CompareInfo.Compare method overloads that have an options parameter that is supplied a value of CompareOptions.StringSort. Note that this is the only method that the .NET Framework provides to compare two strings using string sort rules.

  • An ordinal sort compares strings based on the numeric value of each Char object in the string. An ordinal comparison is automatically case-sensitive because the lowercase and uppercase versions of a character have different code points. However, if case is not important, you can specify an ordinal comparison that ignores case. This is equivalent to converting the string to uppercase by using the invariant culture and then performing an ordinal comparison on the result. For a list of the String methods that compare two strings using ordinal sort rules, see the String operations by category section.

A culture-sensitive comparison is any comparison that explicitly or implicitly uses a CultureInfo object, including the invariant culture that is specified by the CultureInfo.InvariantCulture property. The implicit culture is the current culture, which is specified by the Thread.CurrentCulture and CultureInfo.CurrentCulture properties. There is considerable variation in the sort order of alphabetic characters (that is, characters for which the Char.IsLetter property returns true) across cultures. You can specify a culture-sensitive comparison that uses the conventions of a specific culture by supplying a CultureInfo object to a string comparison method such as Compare(String, String, CultureInfo, CompareOptions). You can specify a culture-sensitive comparison that uses the conventions of the current culture by supplying StringComparison.CurrentCulture, StringComparison.CurrentCultureIgnoreCase, or any member of the CompareOptions enumeration other than CompareOptions.Ordinal or CompareOptions.OrdinalIgnoreCase to an appropriate overload of the Compare method. A culture-sensitive comparison is generally appropriate for sorting whereas an ordinal comparison is not. An ordinal comparison is generally appropriate for determining whether two strings are equal (that is, for determining identity) whereas a culture-sensitive comparison is not.

The following example illustrates the difference between culture-sensitive and ordinal comparison. The example evaluates three strings, "Apple", "Æble", and "AEble", using ordinal comparison and the conventions of the da-DK and en-US cultures (each of which is the default culture at the time the Compare method is called). Because the Danish language treats the character "Æ" as an individual letter and sorts it after "Z" in the alphabet, the string "Æble" is greater than "Apple". However, "Æble" is not considered equivalent to "AEble", so "Æble" is also greater than "AEble". The en-US culture doesn't include the letter "Æ" but treats it as equivalent to "AE", which explains why "Æble" is less than "Apple" but equal to "AEble". Ordinal comparison, on the other hand, considers "Apple" to be less than "Æble", and "Æble" to be greater than "AEble".

No code example is currently available or this language may not be supported.

Use the following general guidelines to choose an appropriate sorting or string comparison method:

  • If you want the strings to be ordered based on the user's culture, you should order them based on the conventions of the current culture. If the user's culture changes, the order of sorted strings will also change accordingly. For example, a thesaurus application should always sort words based on the user's culture.

  • If you want the strings to be ordered based on the conventions of a specific culture, you should order them by supplying a CultureInfo object that represents that culture to a comparison method. For example, in an application designed to teach students a particular language, you want strings to be ordered based on the conventions of one of the cultures that speaks that language.

  • If you want the order of strings to remain unchanged across cultures, you should order them based on the conventions of the invariant culture or use an ordinal comparison. For example, you would use an ordinal sort to organize the names of files, processes, mutexes, or named pipes.

  • For a comparison that involves a security decision (such as whether a user name is valid), you should always perform an ordinal test for equality by calling an overload of the Equals method.

NoteNote

The culture-sensitive sorting and casing rules used in string comparison depend on the version of the .NET Framework. In the .NET Framework 4.5 running on the Windows 8 operating system, sorting, casing, normalization, and Unicode character information conforms to the Unicode 6.0 standard. On other operating systems, it conforms to the Unicode 5.0 standard.

For more information about word, string, and ordinal sort rules, see the System.Globalization.CompareOptions topic. For additional recommendations on when to use each rule, see Best Practices for Using Strings in the .NET Framework.

Ordinarily, you do not call string comparison methods such as Compare directly to determine the sort order of strings. Instead, comparison methods are called by sorting methods such as Array.Sort or List(T).Sort. The following example performs four different sorting operations (word sort using the current culture, word sort using the invariant culture, ordinal sort, and string sort using the invariant culture) without explicitly calling a string comparison method, although they do specify the type of comparison to use. Note that each type of sort produces a unique ordering of strings in its array.

No code example is currently available or this language may not be supported.
TipTip

Internally, the.NET Framework uses sort keys to support culturally sensitive string comparison. Each character in a string is given several categories of sort weights, including alphabetic, case, and diacritic. A sort key, represented by the SortKey class, provides a repository of these weights for a particular string. If your app performs a large number of searching or sorting operations on the same set of strings, you can improve its performance by generating and storing sort keys for all the strings that it uses. When a sort or comparison operation is required, you use the sort keys instead of the strings. For more information, see the SortKey class.

If you don't specify a string comparison convention, sorting methods such as Array.Sort(Array) perform a culture-sensitive, case-sensitive sort on strings. The following example illustrates how changing the current culture affects the order of sorted strings in an array. It creates an array of three strings. First, it sets the System.Threading.Thread.CurrentThread.CurrentCulture property to en-US and calls the Array.Sort(Array) method. The resulting sort order is based on sorting conventions for the English (United States) culture. Next, the example sets the System.Threading.Thread.CurrentThread.CurrentCulture property to da-DK and calls the Array.Sort method again. Notice how the resulting sort order differs from the en-US results because it uses the sorting conventions for Danish (Denmark).

No code example is currently available or this language may not be supported.
Caution noteCaution

If your primary purpose in comparing strings is to determine whether they are equal, you should call the String.Equals method. Typically, you should use Equals to perform an ordinal comparison. The String.Compare method is intended primarily to sort strings.

String search methods, such as String.StartsWith and String.IndexOf, also can perform culture-sensitive or ordinal string comparisons. The following example illustrates the differences between ordinal and culture-sensitive comparisons using the IndexOf method. A culture-sensitive search in which the current culture is English (United States) considers the substring "oe" to match the ligature "œ". Because a soft hyphen (U+00AD) is a zero-width character, the search treats the soft hyphen as equivalent to Empty and finds a match at the beginning of the string. An ordinal search, on the other hand, does not find a match in either case.

No code example is currently available or this language may not be supported.

String search methods, such as String.StartsWith and String.IndexOf, also can perform culture-sensitive or ordinal string comparisons to determine whether a character or substring is found in a specified string.

The search methods in the String class that that search for an individual character, such as the IndexOf method, or one of a set of characters, such as the IndexOfAny method, all perform an ordinal search. To perform a culture-sensitive search for a character, you must call a CompareInfo method such as CompareInfo.IndexOf(String, Char) or CompareInfo.LastIndexOf(String, Char). Note that the results of searching for a character using ordinal and culture-sensitive comparison can be very different. For example, a search for a precomposed Unicode character such as the ligature "Æ" (U+00C6) might match any occurrence of its components in the correct sequence, such as "AE" (U+041U+0045), depending on the culture. The following example illustrates the difference between the String.IndexOf(Char) and CompareInfo.IndexOf(String, Char) methods when searching for an individual character. The ligature "æ" (U+00E6) is found in the string "aerial" when using the conventions of the en-US culture, but not when using the conventions of the da-DK culture or when performing an ordinal comparison.

No code example is currently available or this language may not be supported.

On the other hand, String class methods that search for a string rather than a character perform a culture-sensitive search if search options are not explicitly specified by a parameter of type StringComparison. The sole exception is Contains, which performs an ordinal search.

Use the String.Compare method to determine the relationship of two strings in the sort order. Typically, this is a culture-sensitive operation. In contrast, call the String.Equals method to test for equality. Because the test for equality usually compares user input with some known string, such as a valid user name, a password, or a file system path, it is typically an ordinal operation.

Caution noteCaution

It is possible to test for equality by calling the String.Compare method and determining whether the return value is zero. However, this practice is not recommended. To determine whether two strings are equal, you should call one of the overloads of the String.Equals method. The preferred overload to call is either the instance Equals(String, StringComparison) method or the static Equals(String, String, StringComparison) method, because both methods include a System.StringComparison parameter that explicitly specifies the type of comparison.

The following example illustrates the danger of performing a culture-sensitive comparison for equality when an ordinal one should be used instead. In this case, the intent of the code is to prohibit file system access from URLs that begin with "FILE://" or "file://" by performing a case-insensitive comparison of the beginning of a URL with the string "FILE://". However, if a culture-sensitive comparison is performed using the Turkish (Turkey) culture on a URL that begins with "file://", the comparison for equality fails, because the Turkish uppercase equivalent of the lowercase "i" is "İ" instead of "I". As a result, file system access is inadvertently permitted. On the other hand, if an ordinal comparison is performed, the comparison for equality succeeds, and file system access is denied.

No code example is currently available or this language may not be supported.

Normalization

Some Unicode characters have multiple representations. For example, any of the following code points can represent the letter "ắ":

  • U+1EAF

  • U+0103 U+0301

  • U+0061 U+0306 U+0301

Multiple representations for a single character complicate searching, sorting, matching, and other string operations.

The Unicode standard defines a process called normalization that returns one binary representation of a Unicode character for any of its equivalent binary representations. Normalization can use several algorithms, called normalization forms, that follow different rules. The .NET Framework supports Unicode normalization forms C, D, KC, and KD. When strings have been normalized to the same normalization form, they can be compared by using ordinal comparison.

An ordinal comparison is a binary comparison of the Unicode scalar value of corresponding Char objects in each string. The String class includes a number of methods that can perform an ordinal comparison, including the following:

You can determine whether a string is normalized to normalization form C by calling the String.IsNormalized() method, or you can call the String.IsNormalized(NormalizationForm) method to determine whether a string is normalized to a specified normalization form. You can also call the String.Normalize() method to convert a string to normalization form C, or you can call the String.Normalize(NormalizationForm) method to convert a string to a specified normalization form. For step-by-step information about normalizing and comparing strings, see the Normalize() and Normalize(NormalizationForm) methods.

The following simple example illustrates string normalization. It defines the letter "ố" in three different ways in three different strings, and uses an ordinal comparison for equality to determine that each string differs from the other two strings. It then converts each string to the supported normalization forms, and again performs an ordinal comparison of each string in a specified normalization form. In each case, the second test for equality shows that the strings are equal.

No code example is currently available or this language may not be supported.

For more information about normalization and normalization forms, see System.Text.NormalizationForm, as well as Unicode Standard Annex #15: Unicode Normalization Forms and the Normalization FAQ on the unicode.org website.

String operations by category

The String class provides members for comparing strings, testing strings for equality, finding characters or substrings in a string, modifying a string, extracting substrings from a string, combining strings, formatting values, copying a string, and normalizing a string.

You can compare strings to determine their relative position in the sort order by using the following String methods:

  • Compare returns an integer that indicates the relationship of one string to a second string in the sort order.

  • CompareOrdinal returns an integer that indicates the relationship of one string to a second string based on a comparison of their code points.

  • CompareTo returns an integer that indicates the relationship of the current string instance to a second string in the sort order. The CompareTo(String) method provides the IComparable and IComparable(T) implementations for the String class.

You call the Equals method to determine whether two strings are equal. The instance Equals(String, String, StringComparison) and the static Equals(String, StringComparison) overloads let you specify whether the comparison is culture-sensitive or ordinal, and whether case is considered or ignored. Most tests for equality are ordinal, and comparisons for equality that determine access to a system resource (such as a file system object) should always be ordinal.

The String class includes two kinds of search methods:

Caution noteCaution

If you want to search a string for a particular pattern rather than a specific substring, you should use regular expressions. For more information, see .NET Framework Regular Expressions.

The String class includes the following methods that appear to modify the value of a string:

  • Insert inserts a string into the current String instance.

  • PadLeft inserts one or more occurrences of a specified character at the beginning of a string.

  • PadRight inserts one or more occurrences of a specified character at the beginning of a string.

  • Remove deletes a substring from the current String instance.

  • Replace replaces a substring with another substring in the current String instance.

  • ToLower and ToLowerInvariant convert all the characters in a string to lowercase.

  • ToUpper and ToUpperInvariant convert all the characters in a string to uppercase.

  • Trim removes all occurrences of a character from the beginning and end of a string.

  • TrimEnd removes all occurrences of a character from the end of a string.

  • TrimStart removes all occurrences of a character from the beginning of a string.

Important noteImportant

All string modification methods return a new String object. They do not modify the value of the current instance.

The String.Split method separates a single string into multiple strings. Overloads of the method allow you to specify multiple delimiters, to determine the maximum number of substrings that the method extracts, and to determine whether empty strings (which occur when delimiters are adjacent) are included among the returned strings.

The following String methods can be used for string concatenation:

  • Concat combines one or more substrings into a single string.

  • Join concatenates one or more substrings into a single element and adds a separator between each substring.

The String.Format method uses the composite formatting feature to replace one or more placeholders in a string with the string representation of some object or value. The Format method is often used to do the following:

  • To embed the string representation of a numeric value in a string.

  • To embed the string representation of a date and time value in a string.

  • To embed the string representation of an enumeration value in a string.

  • To embed the string representation of some object that supports the IFormattable interface in a string.

  • To right-justify or left-justify a substring in a field within a larger string.

For detailed information about formatting operations and examples, see the Format overload summary.

You can call the following String methods to make a copy of a string:

  • Clone returns a reference to an existing String object.

  • Copy creates a copy of an existing string.

  • CopyTo copies a portion of a string to a character array.

In Unicode, a single character can have multiple code points. Normalization converts these equivalent characters into the same binary representation. The String.Normalize method performs the normalization, and the String.IsNormalized method determines whether a string is normalized.

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, 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 SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

This type is thread safe.

Show:
© 2014 Microsoft