Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase String

 

Publicado: octubre de 2016

Representa texto como una secuencia de unidades de código UTF-16.

Para examinar el código fuente de .NET Framework para este tipo, consulte el Reference Source.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)


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

NombreDescripción
System_CAPS_pubmethodString(Char*)

Inicializa una nueva instancia de la clase String con el valor indicado por un puntero especificado que apunta a una matriz de caracteres Unicode.

System_CAPS_pubmethodString(Char*, Int32, Int32)

Inicializa una nueva instancia de la clase String con el valor indicado por un puntero especificado que apunta a una matriz de caracteres Unicode, una posición de carácter inicial dentro de dicha matriz y una longitud.

System_CAPS_pubmethodString(Char, Int32)

Inicializa una nueva instancia de la clase String con el valor indicado por un carácter Unicode especificado que se repite un número de veces determinado.

System_CAPS_pubmethodString(Char[])

Inicializa una nueva instancia de la clase String en el valor indicado por una matriz de caracteres Unicode.

System_CAPS_pubmethodString(Char[], Int32, Int32)

Inicializa una nueva instancia de la clase String con el valor indicado por una matriz de caracteres Unicode, una posición de carácter inicial dentro de dicha matriz y una longitud.

System_CAPS_pubmethodString(SByte*)

Inicializa una nueva instancia de la clase String con el valor indicado por un puntero a una matriz de enteros de 8 bits con signo.

System_CAPS_pubmethodString(SByte*, Int32, Int32)

Inicializa una nueva instancia de la clase String con el valor indicado por un puntero a una matriz de enteros de 8 bits con signo especificado, una posición inicial dentro de dicha matriz y una longitud.

System_CAPS_pubmethodString(SByte*, Int32, Int32, Encoding)

Inicializa una nueva instancia de la clase String con el valor indicado por un puntero a una matriz de enteros de 8 bits con signo especificado, una posición inicial dentro de dicha matriz, una longitud y un objeto Encoding.

NombreDescripción
System_CAPS_pubpropertyChars[Int32]

Obtiene el objeto Char situado en una posición específica en el objeto String actual.

System_CAPS_pubpropertyLength

Obtiene el número de caracteres del objeto String actual.

NombreDescripción
System_CAPS_pubmethodClone()

Devuelve una referencia a la instancia de String.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32)

Compara subcadenas de dos objetos String especificados y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, Boolean)

Compara las subcadenas de dos objetos String especificados, pasando por alto o teniendo en cuenta el uso de mayúsculas y minúsculas, y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, Boolean, CultureInfo)

Compara las subcadenas de dos objetos String especificados, pasando por alto o teniendo en cuenta el uso de mayúsculas y minúsculas, usa información específica de la referencia cultural para influir en la comparación y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

Compara las subcadenas de dos objetos String especificados usando las opciones de comparación especificadas e información específica de la referencia cultural para influir en la comparación y devuelve un entero que indica la relación mutua de las dos subcadenas en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, Int32, String, Int32, Int32, StringComparison)

Compara las subcadenas de dos objetos String especificados usando las reglas especificadas y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String)

Compara dos objetos String especificados y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, Boolean)

Compara dos objetos String especificados, pasando por alto o teniendo en cuenta el uso de mayúsculas y minúsculas, y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, Boolean, CultureInfo)

Compara dos objetos String especificados, pasando por alto o teniendo en cuenta el uso de mayúsculas y minúsculas, usa información específica de la referencia cultural para influir en la comparación y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, CultureInfo, CompareOptions)

Compara dos objetos String especificados usando las opciones de comparación especificadas e información específica de la referencia cultural para influir en la comparación y devuelve un entero que indica la relación mutua de las dos cadenas en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, StringComparison)

Compara dos objetos String especificados usando las reglas especificadas y devuelve un entero que indica su posición relativa en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticCompareOrdinal(String, Int32, String, Int32, Int32)

Compara las subcadenas de dos objetos String especificados mediante la evaluación de los valores numéricos de los correspondientes objetos Char en cada subcadena.

System_CAPS_pubmethodSystem_CAPS_staticCompareOrdinal(String, String)

Compara dos objetos String especificados mediante la evaluación de los valores numéricos de los objetos Char correspondientes de cada cadena.

System_CAPS_pubmethodCompareTo(Object)

Compara esta instancia con un Object especificado e indica si la posición de esta instancia es anterior, posterior o igual que la posición del Object especificado en el criterio de ordenación.

System_CAPS_pubmethodCompareTo(String)

Compara esta instancia con un objeto String especificado e indica si la posición de esta instancia es anterior, posterior o igual que la posición de la cadena especificada en el criterio de ordenación.

System_CAPS_pubmethodSystem_CAPS_staticConcat(IEnumerable<String>)

Concatena los miembros de una colección IEnumerable<T> construida de tipo String.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object)

Crea la representación de cadena de un objeto especificado.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object)

Concatena las representaciones de cadena de dos objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object, Object)

Concatena las representaciones de cadena de tres objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object, Object, Object)

Concatena las representaciones de cadena de cuatro objetos especificados y cualquier otro objeto especificado en una lista opcional de parámetros de longitud variable.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object[])

Concatena las representaciones de cadena de los elementos de una matriz Object especificada.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String)

Concatena dos instancias de String especificadas.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String, String)

Concatena tres instancias de String especificadas.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String, String, String)

Concatena cuatro instancias de String especificadas.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String[])

Concatena los elementos en una matriz String especificada.

System_CAPS_pubmethodSystem_CAPS_staticConcat<T>(IEnumerable<T>)

Concatena los miembros de una implementación de IEnumerable<T>.

System_CAPS_pubmethodContains(String)

Devuelve un valor que indica si una subcadena especificada aparece dentro de esta cadena.

System_CAPS_pubmethodSystem_CAPS_staticCopy(String)

Crea una nueva instancia de String con el mismo valor que una String especificada.

System_CAPS_pubmethodCopyTo(Int32, Char[], Int32, Int32)

Copia un número especificado de caracteres situados en una posición especificada de la instancia en una posición determinada de una matriz de caracteres Unicode.

System_CAPS_pubmethodEndsWith(String)

Determina si el final de esta instancia de cadena coincide con la cadena especificada.

System_CAPS_pubmethodEndsWith(String, Boolean, CultureInfo)

Determina si el final de esta instancia de cadena coincide con la cadena especificada cuando se comparan usando la referencia cultural especificada.

System_CAPS_pubmethodEndsWith(String, StringComparison)

Determina si el final de esta instancia de cadena coincide con la cadena especificada cuando se comparan usando la opción de comparación especificada.

System_CAPS_pubmethodEquals(Object)

Determina si esta instancia y un objeto especificado, que también debe ser un objeto String, tienen el mismo valor.(Invalida Object.Equals(Object)).

System_CAPS_pubmethodEquals(String)

Determina si esta instancia y otro objeto String especificado tienen el mismo valor.

System_CAPS_pubmethodSystem_CAPS_staticEquals(String, String)

Determina si dos objetos String especificados tienen el mismo valor.

System_CAPS_pubmethodSystem_CAPS_staticEquals(String, String, StringComparison)

Determina si dos objetos String especificados tienen el mismo valor. Un parámetro especifica la referencia cultural, el uso de mayúsculas y minúsculas, así como las reglas de ordenación usadas en la comparación.

System_CAPS_pubmethodEquals(String, StringComparison)

Determina si esta cadena y un objeto String especificado tienen el mismo valor. Un parámetro especifica la referencia cultural, el uso de mayúsculas y minúsculas, así como las reglas de ordenación usadas en la comparación.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object)

Sustituye el elemento o elementos de formato en una cadena específica con la representación de cadena del objeto correspondiente. Un parámetro proporciona información de formato específica de la referencia cultural.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object, Object)

Reemplaza los elementos de formato en una cadena especificada por la representación de cadena de dos objetos especificados. Un parámetro proporciona información de formato específica de la referencia cultural.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object, Object, Object)

Reemplaza los elementos de formato de una cadena especificada por la representación de cadena de tres objetos especificados. Un parámetro proporciona información de formato específica de la referencia cultural.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object[])

Reemplaza los elementos de formato de una cadena especificada por representaciones de cadena de los objetos correspondientes en una matriz especificada. Un parámetro proporciona información de formato específica de la referencia cultural.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object)

Reemplaza uno o varios elementos de formato de una cadena especificada con la representación de cadena de un objeto especificado.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object, Object)

Reemplaza los elementos de formato en una cadena especificada por la representación de cadena de dos objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object, Object, Object)

Reemplaza los elementos de formato de una cadena especificada por la representación de cadena de tres objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object[])

Reemplaza el elemento de formato de una cadena especificada por la representación de cadena de un objeto correspondiente de una matriz especificada.

System_CAPS_pubmethodGetEnumerator()

Recupera un objeto que puede recorrer en iteración los caracteres individuales de esta cadena.

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash para esta cadena.(Invalida Object.GetHashCode()).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodGetTypeCode()

Devuelve la interfaz TypeCode para la clase String.

System_CAPS_pubmethodIndexOf(Char)

Devuelve el índice de base cero de la primera aparición del carácter Unicode especificado en esta cadena.

System_CAPS_pubmethodIndexOf(Char, Int32)

Devuelve el índice de base cero de la primera aparición del carácter Unicode especificado en esta cadena. La búsqueda comienza en una posición de carácter especificada.

System_CAPS_pubmethodIndexOf(Char, Int32, Int32)

Devuelve el índice de base en cero de la primera aparición del carácter especificado en la instancia en cuestión. La búsqueda comienza en una posición de carácter especificada y examina un número especificado de posiciones de caracteres.

System_CAPS_pubmethodIndexOf(String)

Indica el índice de base cero de la primera aparición de la cadena especificada en la instancia en cuestión.

System_CAPS_pubmethodIndexOf(String, Int32)

Indica el índice de base cero de la primera aparición de la cadena especificada en la instancia en cuestión. La búsqueda comienza en una posición de carácter especificada.

System_CAPS_pubmethodIndexOf(String, Int32, Int32)

Indica el índice de base cero de la primera aparición de la cadena especificada en la instancia en cuestión. La búsqueda comienza en una posición de carácter especificada y examina un número especificado de posiciones de caracteres.

System_CAPS_pubmethodIndexOf(String, Int32, Int32, StringComparison)

Devuelve el índice de base cero de la primera aparición de la cadena especificada en el objeto String actual. Los parámetros indican la posición inicial de búsqueda en la cadena actual, el número de caracteres de la cadena actual en los que buscar y el tipo de búsqueda que se va a usar para la cadena especificada.

System_CAPS_pubmethodIndexOf(String, Int32, StringComparison)

Devuelve el índice de base cero de la primera aparición de la cadena especificada en el objeto String actual. Los parámetros indican la posición inicial de búsqueda en la cadena actual y el tipo de búsqueda que se usa para la cadena especificada.

System_CAPS_pubmethodIndexOf(String, StringComparison)

Devuelve el índice de base cero de la primera aparición de la cadena especificada en el objeto String actual. Un parámetro especifica el tipo de búsqueda que se va a usar para la cadena especificada.

System_CAPS_pubmethodIndexOfAny(Char[])

Devuelve el índice de base cero de la primera aparición en la instancia de un carácter de una matriz de caracteres Unicode especificada.

System_CAPS_pubmethodIndexOfAny(Char[], Int32)

Devuelve el índice de base cero de la primera aparición en la instancia de un carácter de una matriz de caracteres Unicode especificada. La búsqueda comienza en una posición de carácter especificada.

System_CAPS_pubmethodIndexOfAny(Char[], Int32, Int32)

Devuelve el índice de base cero de la primera aparición en la instancia de un carácter de una matriz de caracteres Unicode especificada. La búsqueda comienza en una posición de carácter especificada y examina un número especificado de posiciones de caracteres.

System_CAPS_pubmethodInsert(Int32, String)

Devuelve una nueva cadena en la que se inserta una cadena especificada en una posición de índice concreta en esta instancia.

System_CAPS_pubmethodSystem_CAPS_staticIntern(String)

Recupera la referencia del sistema al objeto String especificado.

System_CAPS_pubmethodSystem_CAPS_staticIsInterned(String)

Recupera una referencia a un objeto String especificado.

System_CAPS_pubmethodIsNormalized()

Indica si esta cadena tiene la forma de normalización Unicode C.

System_CAPS_pubmethodIsNormalized(NormalizationForm)

Indica si esta cadena tiene la forma de normalización Unicode especificada.

System_CAPS_pubmethodSystem_CAPS_staticIsNullOrEmpty(String)

Indica si el valor de la cadena especificada es null o una cadena de Empty.

System_CAPS_pubmethodSystem_CAPS_staticIsNullOrWhiteSpace(String)

Indica si la cadena especificada es null, está vacía o consta únicamente de caracteres de espacio en blanco.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, IEnumerable<String>)

Concatena los miembros de una colección IEnumerable<T> construida de tipo String, usando el separador especificado entre todos los miembros.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, Object[])

Concatena los elementos de una matriz de objetos, usando el separador especificado entre todos los elementos.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, String[])

Concatena todos los elementos de una matriz de cadenas, usando el separador especificado entre todos los elementos.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, String[], Int32, Int32)

Concatena los elementos especificados de una matriz de cadenas, usando el separador indicado entre todos los elementos.

System_CAPS_pubmethodSystem_CAPS_staticJoin<T>(String, IEnumerable<T>)

Concatena los miembros de una colección, usando el separador especificado entre todos los miembros.

System_CAPS_pubmethodLastIndexOf(Char)

Devuelve la posición de índice de base cero de la última aparición de un carácter Unicode especificado en la instancia.

System_CAPS_pubmethodLastIndexOf(Char, Int32)

Devuelve la posición de índice de base cero de la última aparición de un carácter Unicode especificado en la instancia. La búsqueda se inicia en una posición de carácter especificada y continúa hacia atrás hacia el principio de la cadena.

System_CAPS_pubmethodLastIndexOf(Char, Int32, Int32)

Devuelve la posición de índice de base cero de la última aparición del carácter Unicode especificado en una subcadena de la instancia. La búsqueda se inicia en una posición de caracteres especificada y continúa hacia atrás hacia el principio de la cadena durante un número especificado de posiciones de caracteres.

System_CAPS_pubmethodLastIndexOf(String)

Indica la posición de índice de base cero de la última aparición de una cadena especificada en la instancia en cuestión.

System_CAPS_pubmethodLastIndexOf(String, Int32)

Indica la posición de índice de base cero de la última aparición de una cadena especificada en la instancia en cuestión. La búsqueda se inicia en una posición de carácter especificada y continúa hacia atrás hacia el principio de la cadena.

System_CAPS_pubmethodLastIndexOf(String, Int32, Int32)

Indica la posición de índice de base cero de la última aparición de una cadena especificada en la instancia en cuestión. La búsqueda se inicia en una posición de caracteres especificada y continúa hacia atrás hacia el principio de la cadena durante un número especificado de posiciones de caracteres.

System_CAPS_pubmethodLastIndexOf(String, Int32, Int32, StringComparison)

Indica la posición de índice de base cero de la última aparición de una cadena especificada en la instancia en cuestión. La búsqueda se inicia en una posición de caracteres especificada y continúa hacia atrás hacia el principio de la cadena durante el número especificado de posiciones de caracteres. Un parámetro especifica el tipo de comparación que se debe realizar cuando se busca la cadena especificada.

System_CAPS_pubmethodLastIndexOf(String, Int32, StringComparison)

Devuelve el índice de base cero de la última aparición de una cadena especificada dentro del objeto String actual. La búsqueda se inicia en una posición de carácter especificada y continúa hacia atrás hacia el principio de la cadena. Un parámetro especifica el tipo de comparación que se debe realizar cuando se busca la cadena especificada.

System_CAPS_pubmethodLastIndexOf(String, StringComparison)

Devuelve el índice de base cero de la última aparición de una cadena especificada dentro del objeto String actual. Un parámetro especifica el tipo de búsqueda que se va a usar para la cadena especificada.

System_CAPS_pubmethodLastIndexOfAny(Char[])

Devuelve la posición de índice de base cero de la última aparición en la instancia de uno o varios caracteres especificados de una matriz de caracteres Unicode.

System_CAPS_pubmethodLastIndexOfAny(Char[], Int32)

Devuelve la posición de índice de base cero de la última aparición en la instancia de uno o varios caracteres especificados de una matriz de caracteres Unicode. La búsqueda se inicia en una posición de carácter especificada y continúa hacia atrás hacia el principio de la cadena.

System_CAPS_pubmethodLastIndexOfAny(Char[], Int32, Int32)

Devuelve la posición de índice de base cero de la última aparición en la instancia de uno o varios caracteres especificados de una matriz de caracteres Unicode. La búsqueda se inicia en una posición de caracteres especificada y continúa hacia atrás hacia el principio de la cadena durante un número especificado de posiciones de caracteres.

System_CAPS_pubmethodNormalize()

Devuelve una nueva cadena cuyo valor textual es igual que esta cadena, pero cuya representación binaria tiene la forma de normalización Unicode C.

System_CAPS_pubmethodNormalize(NormalizationForm)

Devuelve una nueva cadena cuyo valor textual es igual que esta cadena, pero cuya representación binaria tiene la forma de normalización Unicode especificada.

System_CAPS_pubmethodPadLeft(Int32)

Devuelve una nueva cadena que alinea a la derecha los caracteres de la instancia e inserta espacios en blanco a la izquierda hasta alcanzar la longitud total especificada.

System_CAPS_pubmethodPadLeft(Int32, Char)

Devuelve una nueva cadena que alinea a la derecha los caracteres de la instancia e inserta a la izquierda un carácter Unicode especificado hasta alcanzar la longitud total especificada.

System_CAPS_pubmethodPadRight(Int32)

Devuelve una nueva cadena que alinea a la izquierda los caracteres de la cadena e inserta espacios en blanco a la derecha hasta alcanzar la longitud total especificada.

System_CAPS_pubmethodPadRight(Int32, Char)

Devuelve una nueva cadena que alinea a la izquierda los caracteres de la cadena e inserta a la derecha un carácter Unicode especificado hasta alcanzar la longitud total especificada.

System_CAPS_pubmethodRemove(Int32)

Devuelve una nueva cadena en la que se han eliminado todos los caracteres de la instancia actual, a partir de una posición especificada y hasta la última posición.

System_CAPS_pubmethodRemove(Int32, Int32)

Devuelve una nueva cadena en la que se ha eliminado un número de caracteres especificado en la instancia actual a partir de una posición especificada.

System_CAPS_pubmethodReplace(Char, Char)

Devuelve una nueva cadena en la que todas las apariciones de un carácter Unicode especificado de esta instancia se reemplazan por otro carácter Unicode especificado.

System_CAPS_pubmethodReplace(String, String)

Devuelve una nueva cadena en la que todas las apariciones de una cadena especificada en la instancia actual se reemplazan por otra cadena especificada.

System_CAPS_pubmethodSplit(Char[])

Divide una cadena en subcadenas basadas en los caracteres de una matriz.

System_CAPS_pubmethodSplit(Char[], Int32)

Divide una cadena en un número máximo de subcadenas en función de los caracteres de una matriz. Número máximo de subcadenas que se va devolver.

System_CAPS_pubmethodSplit(Char[], Int32, StringSplitOptions)

Divide una cadena en un número máximo de subcadenas en función de los caracteres de una matriz.

System_CAPS_pubmethodSplit(Char[], StringSplitOptions)

Divide una cadena en subcadenas en función de los caracteres de una matriz. Puede especificar si las subcadenas incluyen elementos de matriz vacíos.

System_CAPS_pubmethodSplit(String[], Int32, StringSplitOptions)

Divide una cadena en un número máximo de subcadenas en función de las cadenas de una matriz. Puede especificar si las subcadenas incluyen elementos de matriz vacíos.

System_CAPS_pubmethodSplit(String[], StringSplitOptions)

Divide una cadena en subcadenas en función de las cadenas de una matriz. Puede especificar si las subcadenas incluyen elementos de matriz vacíos.

System_CAPS_pubmethodStartsWith(String)

Determina si el principio de esta instancia de cadena coincide con la cadena especificada.

System_CAPS_pubmethodStartsWith(String, Boolean, CultureInfo)

Determina si el principio de esta instancia de cadena coincide con la cadena especificada cuando se comparan usando la referencia cultural especificada.

System_CAPS_pubmethodStartsWith(String, StringComparison)

Determina si el principio de esta instancia de cadena coincide con la cadena especificada cuando se comparan usando la opción de comparación especificada.

System_CAPS_pubmethodSubstring(Int32)

Recupera una subcadena de la instancia. La subcadena empieza en una posición de caracteres especificada y continúa hasta el final de la cadena.

System_CAPS_pubmethodSubstring(Int32, Int32)

Recupera una subcadena de la instancia. La subcadena comienza en una posición de carácter especificada y tiene una longitud especificada.

System_CAPS_pubmethodToCharArray()

Copia los caracteres de la instancia en una matriz de caracteres Unicode.

System_CAPS_pubmethodToCharArray(Int32, Int32)

Copia los caracteres de una subcadena especificada de la instancia en una matriz de caracteres Unicode.

System_CAPS_pubmethodToLower()

Devuelve una copia de esta cadena convertida en minúsculas.

System_CAPS_pubmethodToLower(CultureInfo)

Devuelve una copia de esta cadena convertida en minúsculas, aplicando las reglas de mayúsculas y minúsculas de la referencia cultural especificada.

System_CAPS_pubmethodToLowerInvariant()

Devuelve una copia de este objeto String convertido en minúsculas, aplicando las reglas de mayúsculas y minúsculas de la referencia cultural de todos los idiomas.

System_CAPS_pubmethodToString()

Devuelve la instancia de String; no se efectúa una conversión real.(Invalida Object.ToString()).

System_CAPS_pubmethodToString(IFormatProvider)

Devuelve la instancia de String; no se efectúa una conversión real.

System_CAPS_pubmethodToUpper()

Devuelve una copia de esta cadena convertida en mayúsculas.

System_CAPS_pubmethodToUpper(CultureInfo)

Devuelve una copia de esta cadena convertida en mayúsculas, aplicando las reglas de mayúsculas y minúsculas de la referencia cultural especificada.

System_CAPS_pubmethodToUpperInvariant()

Devuelve una copia de este objeto String convertido en mayúsculas, aplicando las reglas de mayúsculas y minúsculas de la referencia cultural de todos los idiomas.

System_CAPS_pubmethodTrim()

Quita todos los caracteres de espacio en blanco del principio y el final del objeto String actual.

System_CAPS_pubmethodTrim(Char[])

Quita todas las apariciones del principio y el final de un conjunto de caracteres especificados en una matriz del objeto String actual.

System_CAPS_pubmethodTrimEnd(Char[])

Quita todas las apariciones del final de un conjunto de caracteres especificados en una matriz del objeto String actual.

System_CAPS_pubmethodTrimStart(Char[])

Quita todas las apariciones del principio de un conjunto de caracteres especificados en una matriz del objeto String actual.

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticEmpty

Representa la cadena vacía. Este campo es de solo lectura.

NombreDescripción
System_CAPS_puboperatorSystem_CAPS_staticEquality(String, String)

Determina si dos cadenas especificadas tienen el mismo valor.

System_CAPS_puboperatorSystem_CAPS_staticInequality(String, String)

Determina si dos cadenas especificadas tienen valores diferentes.

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable<Char>.GetEnumerator()

Devuelve un enumerador que recorre en iteración el objeto String actual.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Devuelve un enumerador que recorre en iteración el objeto String actual.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToBoolean.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToByte.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToChar.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToDateTime.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToDecimal.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToDouble.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToInt16.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToInt32.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToInt64.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToSByte.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToSingle.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToType.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToUInt16.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToUInt32.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Para una descripción de este miembro, vea ToUInt64.

NombreDescripción
System_CAPS_pubmethodAggregate<Char>(Func<Char, Char, Char>)

Sobrecargado. Aplica una función de acumulador a una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodAggregate<Char, TAccumulate>(TAccumulate, Func<TAccumulate, Char, TAccumulate>)

Sobrecargado. Aplica una función de acumulador a una secuencia. El valor de inicialización especificado se utiliza como valor de inicio del acumulador.(Definido por Enumerable).

System_CAPS_pubmethodAggregate<Char, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, Char, TAccumulate>, Func<TAccumulate, TResult>)

Sobrecargado. Aplica una función de acumulador a una secuencia. El valor de inicialización especificado se utiliza como valor inicial del acumulador y la función especificada se utiliza para seleccionar el valor resultante.(Definido por Enumerable).

System_CAPS_pubmethodAll<Char>(Func<Char, Boolean>)

Determina si todos los elementos de una secuencia satisfacen una condición.(Definido por Enumerable).

System_CAPS_pubmethodAny<Char>()

Sobrecargado. Determina si una secuencia contiene elementos.(Definido por Enumerable).

System_CAPS_pubmethodAny<Char>(Func<Char, Boolean>)

Sobrecargado. Determina si un elemento de una secuencia satisface una condición.(Definido por Enumerable).

System_CAPS_pubmethodAsEnumerable<Char>()

Devuelve la entrada de tipo IEnumerable<T>.(Definido por Enumerable).

System_CAPS_pubmethodAsParallel()

Sobrecargado. Habilita la paralelización de una consulta.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsParallel<Char>()

Sobrecargado. Habilita la paralelización de una consulta.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Definido por Queryable).

System_CAPS_pubmethodAsQueryable<Char>()

Sobrecargado. Convierte un tipo genérico IEnumerable<T> a un tipo genérico IQueryable<T>.(Definido por Queryable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Decimal>)

Sobrecargado. Calcula el promedio de una secuencia de Decimal valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Double>)

Sobrecargado. Calcula el promedio de una secuencia de Double valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Int32>)

Sobrecargado. Calcula el promedio de una secuencia de Int32 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Int64>)

Sobrecargado. Calcula el promedio de una secuencia de Int64 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Decimal>>)

Sobrecargado. Calcula el promedio de una secuencia de nullable Decimal valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Double>>)

Sobrecargado. Calcula el promedio de una secuencia de nullable Double valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Int32>>)

Sobrecargado. Calcula el promedio de una secuencia de nullable Int32 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Int64>>)

Sobrecargado. Calcula el promedio de una secuencia de nullable Int64 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Nullable<Single>>)

Sobrecargado. Calcula el promedio de una secuencia de nullable Single valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodAverage<Char>(Func<Char, Single>)

Sobrecargado. Calcula el promedio de una secuencia de Single valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de un IEnumerable al tipo especificado.(Definido por Enumerable).

System_CAPS_pubmethodConcat<Char>(IEnumerable<Char>)

Concatena dos secuencias.(Definido por Enumerable).

System_CAPS_pubmethodContains<Char>(Char)

Sobrecargado. Determina si una secuencia contiene un elemento especificado mediante el comparador de igualdad predeterminado.(Definido por Enumerable).

System_CAPS_pubmethodContains<Char>(Char, IEqualityComparer<Char>)

Sobrecargado. Determina si una secuencia contiene un elemento especificado mediante el uso de un objeto IEqualityComparer<T>.(Definido por Enumerable).

System_CAPS_pubmethodCount<Char>()

Sobrecargado. Devuelve el número de elementos de una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodCount<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve un número que representa cuántos elementos de la secuencia especificada satisfacen una condición.(Definido por Enumerable).

System_CAPS_pubmethodDefaultIfEmpty<Char>()

Sobrecargado. Devuelve los elementos de la secuencia especificada o el valor predeterminado del parámetro de tipo en una colección singleton si la secuencia está vacía.(Definido por Enumerable).

System_CAPS_pubmethodDefaultIfEmpty<Char>(Char)

Sobrecargado. Devuelve los elementos de la secuencia especificada o el valor especificado en una colección singleton si la secuencia está vacía.(Definido por Enumerable).

System_CAPS_pubmethodDistinct<Char>()

Sobrecargado. Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar valores.(Definido por Enumerable).

System_CAPS_pubmethodDistinct<Char>(IEqualityComparer<Char>)

Sobrecargado. Devuelve diversos elementos de una secuencia utilizando un IEqualityComparer<T> para comparar valores.(Definido por Enumerable).

System_CAPS_pubmethodElementAt<Char>(Int32)

Devuelve el elemento en un índice especificado en una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodElementAtOrDefault<Char>(Int32)

Devuelve el elemento situado en un índice especificado de una secuencia o un valor predeterminado si el índice está fuera del intervalo.(Definido por Enumerable).

System_CAPS_pubmethodExcept<Char>(IEnumerable<Char>)

Sobrecargado. Proporciona la diferencia de conjunto de dos secuencias utilizando el comparador de igualdad predeterminado para comparar valores.(Definido por Enumerable).

System_CAPS_pubmethodExcept<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

Sobrecargado. Proporciona la diferencia de conjuntos de dos secuencias mediante especificado IEqualityComparer<T> para comparar valores.(Definido por Enumerable).

System_CAPS_pubmethodFirst<Char>()

Sobrecargado. Devuelve el primer elemento de una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodFirst<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve el primer elemento de una secuencia que satisface una condición especificada.(Definido por Enumerable).

System_CAPS_pubmethodFirstOrDefault<Char>()

Sobrecargado. Devuelve el primer elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos.(Definido por Enumerable).

System_CAPS_pubmethodFirstOrDefault<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve el primer elemento de la secuencia que satisface una condición o un valor predeterminado si no se encuentra dicho elemento.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey>(Func<Char, TKey>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada y compara las claves utilizando un comparador especificado.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada y proyecta los elementos de cada grupo utilizando una función especificada.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves. Las claves se comparan utilizando un comparador y los elementos de cada grupo se proyectan utilizando una función especificada.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey, TResult>(Func<Char, TKey>, Func<TKey, IEnumerable<Char>, TResult>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey, TResult>(Func<Char, TKey>, Func<TKey, IEnumerable<Char>, TResult>, IEqualityComparer<TKey>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. Las claves se comparan utilizando un comparador especificado.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey, TElement, TResult>(Func<Char, TKey>, Func<Char, TElement>, Func<TKey, IEnumerable<TElement>, TResult>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. Los elementos de cada grupo se proyectan utilizando una función determinada.(Definido por Enumerable).

System_CAPS_pubmethodGroupBy<Char, TKey, TElement, TResult>(Func<Char, TKey>, Func<Char, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Sobrecargado. Agrupa los elementos de una secuencia según una función del selector de claves especificada y crea un valor de resultado a partir de cada grupo y su clave. Los valores de las claves se comparan utilizando un comparador especificado y los elementos de cada grupo se proyectan utilizando una función especificada.(Definido por Enumerable).

System_CAPS_pubmethodGroupJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, IEnumerable<TInner>, TResult>)

Sobrecargado. Correlaciona los elementos de dos secuencias basándose en la igualdad de claves y agrupa los resultados. El comparador de igualdad predeterminado se usa para comparar claves.(Definido por Enumerable).

System_CAPS_pubmethodGroupJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Sobrecargado. Correlaciona los elementos de dos secuencias basándose en la igualdad de claves y agrupa los resultados. Se usa un IEqualityComparer<T> especificado para comparar claves.(Definido por Enumerable).

System_CAPS_pubmethodIntersect<Char>(IEnumerable<Char>)

Sobrecargado. Proporciona la intersección de conjunto de dos secuencias utilizando el comparador de igualdad predeterminado para comparar valores.(Definido por Enumerable).

System_CAPS_pubmethodIntersect<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

Sobrecargado. Proporciona la intersección de conjunto de dos secuencias utilizando los IEqualityComparer<T> para comparar valores.(Definido por Enumerable).

System_CAPS_pubmethodJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, TInner, TResult>)

Sobrecargado. Correlaciona los elementos de dos secuencias basadas en claves coincidentes. El comparador de igualdad predeterminado se usa para comparar claves.(Definido por Enumerable).

System_CAPS_pubmethodJoin<Char, TInner, TKey, TResult>(IEnumerable<TInner>, Func<Char, TKey>, Func<TInner, TKey>, Func<Char, TInner, TResult>, IEqualityComparer<TKey>)

Sobrecargado. Correlaciona los elementos de dos secuencias basadas en claves coincidentes. Se usa un IEqualityComparer<T> especificado para comparar claves.(Definido por Enumerable).

System_CAPS_pubmethodLast<Char>()

Sobrecargado. Devuelve el último elemento de una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodLast<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve el último elemento de una secuencia que satisface una condición especificada.(Definido por Enumerable).

System_CAPS_pubmethodLastOrDefault<Char>()

Sobrecargado. Devuelve el último elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos.(Definido por Enumerable).

System_CAPS_pubmethodLastOrDefault<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve el último elemento de una secuencia que satisface una condición o un valor predeterminado si no se encuentra dicho elemento.(Definido por Enumerable).

System_CAPS_pubmethodLongCount<Char>()

Sobrecargado. Devuelve un Int64 que representa el número total de elementos de una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodLongCount<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve un Int64 que representa el número de elementos de una secuencia satisface una condición.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>()

Sobrecargado. Devuelve el valor máximo de una secuencia genérica.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Decimal>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Decimal valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Double>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Double valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Int32>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int32 valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Int64>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Int64 valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Decimal>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Decimal valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Double>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Double valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Int32>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int32 valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Int64>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Int64 valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Nullable<Single>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo que acepta valores NULL Single valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char>(Func<Char, Single>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el valor máximo Single valor.(Definido por Enumerable).

System_CAPS_pubmethodMax<Char, TResult>(Func<Char, TResult>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia genérica y devuelve el valor máximo resultante.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>()

Sobrecargado. Devuelve el valor mínimo de una secuencia genérica.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Decimal>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo Decimal valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Double>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo Double valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Int32>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo Int32 valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Int64>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo Int64 valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Decimal>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo que acepta valores NULL Decimal valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Double>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo que acepta valores NULL Double valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Int32>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo que acepta valores NULL Int32 valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Int64>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo que acepta valores NULL Int64 valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Nullable<Single>>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo que acepta valores NULL Single valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char>(Func<Char, Single>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia y devuelve el mínimo Single valor.(Definido por Enumerable).

System_CAPS_pubmethodMin<Char, TResult>(Func<Char, TResult>)

Sobrecargado. Invoca una función de transformación en cada elemento de una secuencia genérica y devuelve el valor mínimo resultante.(Definido por Enumerable).

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Definido por Enumerable).

System_CAPS_pubmethodOrderBy<Char, TKey>(Func<Char, TKey>)

Sobrecargado. Ordena los elementos de una secuencia en orden ascendente según una clave.(Definido por Enumerable).

System_CAPS_pubmethodOrderBy<Char, TKey>(Func<Char, TKey>, IComparer<TKey>)

Sobrecargado. Ordena los elementos de una secuencia en orden ascendente mediante un comparador especificado.(Definido por Enumerable).

System_CAPS_pubmethodOrderByDescending<Char, TKey>(Func<Char, TKey>)

Sobrecargado. Ordena los elementos de una secuencia en orden descendente según una clave.(Definido por Enumerable).

System_CAPS_pubmethodOrderByDescending<Char, TKey>(Func<Char, TKey>, IComparer<TKey>)

Sobrecargado. Ordena de manera descendente los elementos de una secuencia utilizando un comparador especificado.(Definido por Enumerable).

System_CAPS_pubmethodReverse<Char>()

Invierte el orden de los elementos de una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodSelect<Char, TResult>(Func<Char, TResult>)

Sobrecargado. Proyecta cada elemento de una secuencia a un nuevo formulario.(Definido por Enumerable).

System_CAPS_pubmethodSelect<Char, TResult>(Func<Char, Int32, TResult>)

Sobrecargado. Proyecta cada elemento de una secuencia en un nuevo formulario mediante la incorporación del índice del elemento.(Definido por Enumerable).

System_CAPS_pubmethodSelectMany<Char, TResult>(Func<Char, IEnumerable<TResult>>)

Sobrecargado. Proyecta cada elemento de una secuencia en un IEnumerable<T> y reduce las secuencias resultantes en una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodSelectMany<Char, TResult>(Func<Char, Int32, IEnumerable<TResult>>)

Sobrecargado. Proyecta cada elemento de una secuencia en un IEnumerable<T>, y reduce las secuencias resultantes en una secuencia. El índice de cada elemento de origen se utiliza en el formulario proyectado de ese elemento.(Definido por Enumerable).

System_CAPS_pubmethodSelectMany<Char, TCollection, TResult>(Func<Char, IEnumerable<TCollection>>, Func<Char, TCollection, TResult>)

Sobrecargado. Proyecta cada elemento de una secuencia en IEnumerable<T>, reduce las secuencias resultantes en una única secuencia e invoca una función del selector de resultados en cada elemento.(Definido por Enumerable).

System_CAPS_pubmethodSelectMany<Char, TCollection, TResult>(Func<Char, Int32, IEnumerable<TCollection>>, Func<Char, TCollection, TResult>)

Sobrecargado. Proyecta cada elemento de una secuencia en IEnumerable<T>, reduce las secuencias resultantes en una única secuencia e invoca una función del selector de resultados en cada elemento. El índice de cada elemento de origen se utiliza en el formulario proyectado intermedio de ese elemento.(Definido por Enumerable).

System_CAPS_pubmethodSequenceEqual<Char>(IEnumerable<Char>)

Sobrecargado. Determina si dos secuencias son iguales al comparar los elementos mediante el comparador de igualdad predeterminado para su tipo.(Definido por Enumerable).

System_CAPS_pubmethodSequenceEqual<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

Sobrecargado. Determina si dos secuencias son iguales al comparar sus elementos mediante un objeto IEqualityComparer<T>.(Definido por Enumerable).

System_CAPS_pubmethodSingle<Char>()

Sobrecargado. Devuelve el único elemento de una secuencia y produce una excepción si no hay exactamente un elemento en la secuencia.(Definido por Enumerable).

System_CAPS_pubmethodSingle<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve el único elemento de una secuencia que cumpla una condición especificada y produce una excepción si existe más de un elemento de este tipo.(Definido por Enumerable).

System_CAPS_pubmethodSingleOrDefault<Char>()

Sobrecargado. Devuelve el único elemento de una secuencia o un valor predeterminado si la secuencia está vacía; Este método produce una excepción si hay más de un elemento en la secuencia.(Definido por Enumerable).

System_CAPS_pubmethodSingleOrDefault<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve el único elemento de una secuencia que cumpla la condición especificada, o bien, un valor predeterminado si ese elemento no existe; este método produce una excepción si varios elementos cumplen la condición.(Definido por Enumerable).

System_CAPS_pubmethodSkip<Char>(Int32)

Omite un número especificado de elementos de una secuencia y, a continuación, devuelve los elementos restantes.(Definido por Enumerable).

System_CAPS_pubmethodSkipWhile<Char>(Func<Char, Boolean>)

Sobrecargado. Omite los elementos de una secuencia siempre que una condición especificada sea true y, a continuación, devuelve los elementos restantes.(Definido por Enumerable).

System_CAPS_pubmethodSkipWhile<Char>(Func<Char, Int32, Boolean>)

Sobrecargado. Omite los elementos de una secuencia siempre que una condición especificada sea true y, a continuación, devuelve los elementos restantes. El índice del elemento se usa en la lógica de la función de predicado.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Decimal>)

Sobrecargado. Calcula la suma de la secuencia de Decimal valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Double>)

Sobrecargado. Calcula la suma de la secuencia de Double valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Int32>)

Sobrecargado. Calcula la suma de la secuencia de Int32 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Int64>)

Sobrecargado. Calcula la suma de la secuencia de Int64 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Decimal>>)

Sobrecargado. Calcula la suma de la secuencia de nullable Decimal valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Double>>)

Sobrecargado. Calcula la suma de la secuencia de nullable Double valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Int32>>)

Sobrecargado. Calcula la suma de la secuencia de nullable Int32 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Int64>>)

Sobrecargado. Calcula la suma de la secuencia de nullable Int64 valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Nullable<Single>>)

Sobrecargado. Calcula la suma de la secuencia de nullable Single valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodSum<Char>(Func<Char, Single>)

Sobrecargado. Calcula la suma de la secuencia de Single valores que se obtienen mediante la invocación de una función de transformación en cada elemento de la secuencia de entrada.(Definido por Enumerable).

System_CAPS_pubmethodTake<Char>(Int32)

Devuelve un número especificado de elementos contiguos desde el principio de una secuencia.(Definido por Enumerable).

System_CAPS_pubmethodTakeWhile<Char>(Func<Char, Boolean>)

Sobrecargado. Devuelve los elementos de una secuencia siempre que una condición especificada sea true.(Definido por Enumerable).

System_CAPS_pubmethodTakeWhile<Char>(Func<Char, Int32, Boolean>)

Sobrecargado. Devuelve los elementos de una secuencia siempre que una condición especificada sea true. El índice del elemento se usa en la lógica de la función de predicado.(Definido por Enumerable).

System_CAPS_pubmethodToArray<Char>()

Crea una matriz a partir de un IEnumerable<T>.(Definido por Enumerable).

System_CAPS_pubmethodToDictionary<Char, TKey>(Func<Char, TKey>)

Sobrecargado. Crea un Dictionary<TKey, TValue> de un IEnumerable<T> según una función del selector de claves especificada.(Definido por Enumerable).

System_CAPS_pubmethodToDictionary<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)

Sobrecargado. Crea un Dictionary<TKey, TValue> de un IEnumerable<T> según un comparador de función y la clave del selector de claves especificada.(Definido por Enumerable).

System_CAPS_pubmethodToDictionary<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)

Sobrecargado. Crea un Dictionary<TKey, TValue> de un IEnumerable<T> según el selector de claves especificada y las funciones del selector de elementos.(Definido por Enumerable).

System_CAPS_pubmethodToDictionary<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)

Sobrecargado. Crea un Dictionary<TKey, TValue> de un IEnumerable<T> según una función del selector de claves especificada, un comparador y una función del selector de elementos.(Definido por Enumerable).

System_CAPS_pubmethodToList<Char>()

Crea un List<T> a partir de un IEnumerable<T>.(Definido por Enumerable).

System_CAPS_pubmethodToLookup<Char, TKey>(Func<Char, TKey>)

Sobrecargado. Crea un Lookup<TKey, TElement> de un IEnumerable<T> según una función del selector de claves especificada.(Definido por Enumerable).

System_CAPS_pubmethodToLookup<Char, TKey>(Func<Char, TKey>, IEqualityComparer<TKey>)

Sobrecargado. Crea un Lookup<TKey, TElement> de un IEnumerable<T> según un comparador de función y la clave del selector de claves especificada.(Definido por Enumerable).

System_CAPS_pubmethodToLookup<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>)

Sobrecargado. Crea un Lookup<TKey, TElement> de un IEnumerable<T> según el selector de claves especificada y las funciones del selector de elementos.(Definido por Enumerable).

System_CAPS_pubmethodToLookup<Char, TKey, TElement>(Func<Char, TKey>, Func<Char, TElement>, IEqualityComparer<TKey>)

Sobrecargado. Crea un Lookup<TKey, TElement> de un IEnumerable<T> según una función del selector de claves especificada, un comparador y una función del selector de elementos.(Definido por Enumerable).

System_CAPS_pubmethodUnion<Char>(IEnumerable<Char>)

Sobrecargado. Proporciona la unión de conjunto de dos secuencias utilizando el comparador de igualdad predeterminado.(Definido por Enumerable).

System_CAPS_pubmethodUnion<Char>(IEnumerable<Char>, IEqualityComparer<Char>)

Sobrecargado. Proporciona la unión de conjuntos de dos secuencias mediante un objeto IEqualityComparer<T>.(Definido por Enumerable).

System_CAPS_pubmethodWhere<Char>(Func<Char, Boolean>)

Sobrecargado. Filtra una secuencia de valores en función de un predicado.(Definido por Enumerable).

System_CAPS_pubmethodWhere<Char>(Func<Char, Int32, Boolean>)

Sobrecargado. Filtra una secuencia de valores en función de un predicado. El índice de cada elemento se usa en la lógica de la función de predicado.(Definido por Enumerable).

System_CAPS_pubmethodZip<Char, TSecond, TResult>(IEnumerable<TSecond>, Func<Char, TSecond, TResult>)

Se aplica a una función especificada a los elementos correspondientes de dos secuencias, que produce una secuencia de los resultados.(Definido por Enumerable).

System_CAPS_noteNota

Para ver el código fuente de .NET Framework para este tipo, consulte el Reference Source. Puede examinar el código fuente en línea, descargar la referencia para visualizarlo sin conexión y paso a paso el código fuente (incluidas revisiones y actualizaciones) durante la depuración; see instructions.

Una cadena es una colección secuencial de caracteres que se utiliza para representar texto. A String objeto es una colección secuencial de System.Char objetos que representan una cadena; un System.Char objeto corresponde a una unidad de código UTF-16. El valor de la String objeto es el contenido de la colección secuencial de System.Char objetos, y que el valor es inmutable (es decir, es de solo lectura). Para obtener más información sobre la inmutabilidad de cadenas, vea la inmutabilidad y la clase StringBuilder sección más adelante en este tema. El tamaño máximo de un String objeto en la memoria es 2 GB, o aproximadamente 1 mil millones de caracteres.

En esta sección:

Crear instancias de un objeto de cadena
Caracteres Unicode y objetos Char
Las cadenas y el estándar Unicode
Las cadenas y caracteres nulos incrustados
Las cadenas e índices
Cadenas nulas y cadenas vacías
Inmutabilidad y la clase StringBuilder
Ordinal frente a operaciones sensibles a la referencia cultural
Normalización
Operaciones de cadena por categoría

Puede crear instancias de un String objeto de las maneras siguientes:

  • Mediante la asignación de un literal de cadena a un String variable. Este es el método más usado para crear una cadena. En el ejemplo siguiente se utiliza la asignación para crear varias cadenas. Tenga en cuenta que en C#, como la barra diagonal inversa (\) es un carácter de escape, deben convertirse literales barras diagonales inversas en una cadena o la cadena completa debe ser @ entre comillas.

    string string1 = "This is a string created by assignment.";
    Console.WriteLine(string1);
    string string2a = "The path is C:\\PublicDocuments\\Report1.doc";
    Console.WriteLine(string2a);
    string string2b = @"The path is C:\PublicDocuments\Report1.doc";
    Console.WriteLine(string2b);
    // The example displays the following output:
    //       This is a string created by assignment.
    //       The path is C:\PublicDocuments\Report1.doc
    //       The path is C:\PublicDocuments\Report1.doc      
    
  • Mediante una llamada a un String constructor de clase. En el ejemplo siguiente se crea una instancia de cadenas mediante una llamada a varios constructores de clase. Tenga en cuenta que algunos de los constructores son punteros a matrices de caracteres o matrices de byte con signo como parámetros. Visual Basic no admite llamadas a estos constructores. Para obtener información detallada acerca de String constructores, vea el String constructor resumen.

    char[] chars = { 'w', 'o', 'r', 'd' };
    sbyte[] bytes = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x00 };
    
    // Create a string from a character array.
    string string1 = new string(chars);
    Console.WriteLine(string1);
    
    // Create a string that consists of a character repeated 20 times.
    string string2 = new string('c', 20);
    Console.WriteLine(string2);
    
    string stringFromBytes = null;
    string stringFromChars = null;
    unsafe
    {
       fixed (sbyte* pbytes = bytes)
       {
          // Create a string from a pointer to a signed byte array.
          stringFromBytes = new string(pbytes);
       }
       fixed (char* pchars = chars)
       {
          // Create a string from a pointer to a character array.
          stringFromChars = new string(pchars);
       }
    }
    Console.WriteLine(stringFromBytes);
    Console.WriteLine(stringFromChars);
    // The example displays the following output:
    //       word
    //       cccccccccccccccccccc
    //       ABCDE
    //       word  
    
  • Utilizando el operador de concatenación (+ en C# y siguiente o + en Visual Basic) para crear una sola cadena de cualquier combinación de String instancias y literales de cadena. En el ejemplo siguiente se muestra el uso del operador de concatenación de cadena.

    string string1 = "Today is " + DateTime.Now.ToString("D") + ".";
    Console.WriteLine(string1);
    
    string string2 = "This is one sentence. " + "This is a second. ";
    string2 += "This is a third sentence.";
    Console.WriteLine(string2);
    // The example displays output like the following:
    //    Today is Tuesday, July 06, 2011.
    //    This is one sentence. This is a second. This is a third sentence.
    
  • Recuperar una propiedad o llamar a un método que devuelve una cadena. El ejemplo siguiente utiliza los métodos de la String clase para extraer una subcadena de una cadena mayor.

    string sentence = "This sentence has five words.";
    // Extract the second word.
    int startPosition = sentence.IndexOf(" ") + 1;
    string word2 = sentence.Substring(startPosition,
                                      sentence.IndexOf(" ", startPosition) - startPosition);
    Console.WriteLine("Second word: " + word2);
    // The example displays the following output:
    //       Second word: sentence
    
  • Mediante una llamada a un método para convertir un valor u objeto en su representación de cadena de formato. En el ejemplo siguiente se usa el formatos compuestos característica que se va a incrustar la representación de cadena de dos objetos en una cadena.

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

Cada carácter de una cadena se define por un valor escalar Unicode, también denominado punto de código Unicode o el valor ordinal (numérico) del carácter Unicode. Cada punto de código se codifica mediante la codificación UTF-16 y el valor numérico de cada elemento de la codificación se representa mediante un Char objeto.

System_CAPS_noteNota

Tenga en cuenta que, dado un String instancia consta de una colección secuencial de unidades de código UTF-16, es posible crear un String objeto que no es una cadena Unicode con formato correcto. Por ejemplo, es posible crear una cadena que tiene un suplente bajo sin un suplente alto correspondiente. Aunque algunos métodos, como los métodos de codificación y descodificación de objetos en el System.Text espacio de nombres, puede realiza comprobaciones para asegurarse de si las cadenas tienen un formato correcto, String los miembros de clase no garantizan que una cadena es correcto.

Una sola Char objeto normalmente representa un único punto de código, es decir, el valor numérico de la Char es igual al punto de código. Por ejemplo, el punto de código "para el carácter a" es u+0061. Sin embargo, un punto de código puede requerir más de un elemento codificado (más de un Char objeto). El estándar Unicode define dos tipos de caracteres que corresponden a varios Char objetos: graphemes y puntos de código adicionales de Unicode que se corresponden con caracteres de los planos suplementarios Unicode.

  • Un grafemas está representado por un carácter base seguido de uno o más caracteres de combinación. Por ejemplo, el carácter ä se representa mediante un Char objeto cuyo punto de código está seguido por un u+0061 Char objeto cuyo punto de código es + u+0308. Este carácter también puede definirse mediante una sola Char objeto que tiene un punto de código de 00E4 U +. Como se muestra en el ejemplo siguiente, una comparación dependiente de la referencia cultural para igualdad indica que estas dos representaciones son iguales, aunque no una comparación ordinal normal. Sin embargo, si las dos cadenas se normalizan, una comparación ordinal también indica que son iguales. (Para obtener más información sobre la normalización de cadenas, vea la normalización sección.)

    using System;
    using System.Globalization;
    using System.IO;
    
    public class Example
    {
       public static void Main()
       {
          StreamWriter sw = new StreamWriter(@".\graphemes.txt");
          string grapheme = "\u0061\u0308";
          sw.WriteLine(grapheme);
    
          string singleChar = "\u00e4";
          sw.WriteLine(singleChar);
    
          sw.WriteLine("{0} = {1} (Culture-sensitive): {2}", grapheme, singleChar, 
                       String.Equals(grapheme, singleChar, 
                                     StringComparison.CurrentCulture));
          sw.WriteLine("{0} = {1} (Ordinal): {2}", grapheme, singleChar, 
                       String.Equals(grapheme, singleChar, 
                                     StringComparison.Ordinal));
          sw.WriteLine("{0} = {1} (Normalized Ordinal): {2}", grapheme, singleChar, 
                       String.Equals(grapheme.Normalize(), 
                                     singleChar.Normalize(), 
                                     StringComparison.Ordinal));
          sw.Close(); 
       }
    }
    // The example produces the following output:
    //       ä
    //       ä
    //       ä = ä (Culture-sensitive): True
    //       ä = ä (Ordinal): False
    //       ä = ä (Normalized Ordinal): True
    
  • Unicode (un par suplente) del punto de código adicional se representa mediante un Char objeto cuyo punto de código es un suplente alto seguido por un Char objeto cuyo punto de código es un suplente bajo. Las unidades de código de gama alta suplentes de U+D800 a U+DBFF. Las unidades de código de intervalo de suplentes baja de U+DC00 a U+DFFF. Los pares suplentes se utilizan para representar los caracteres en los 16 planos complementarios de Unicode. En el ejemplo siguiente se crea un carácter suplente y lo pasa a la Char.IsSurrogatePair(Char, Char) método para determinar si se trata de un par suplente.

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

Caracteres de una cadena se representan mediante unidades de código codificado mediante UTF-16, que se corresponden con Char valores.

Cada carácter de una cadena tiene una categoría de caracteres Unicode asociada, que se representa en .NET Framework mediante el UnicodeCategory enumeración. La categoría de un carácter o un par suplente se puede determinar mediante una llamada a la CharUnicodeInfo.GetUnicodeCategory método.

.NET Framework mantiene su propia tabla de caracteres y sus categorías correspondientes, lo que garantiza que una versión de .NET Framework que se ejecutan en plataformas diferentes devuelve información de categorías de caracteres idénticos. En la tabla siguiente se enumera las versiones de .NET Framework y las versiones del estándar Unicode en la que se basan sus categorías de caracteres.

Versión de .NET Framework

Versión del estándar Unicode

.NET Framework 1.1

The Unicode Standard, Version 4.0.0

.NET Framework 2.0

The Unicode Standard, Version 5.0.0

.NET Framework 3.5

The Unicode Standard, Version 5.0.0

.NET Framework 4

The Unicode Standard, Version 5.0.0

.NET Framework 4.5

The Unicode Standard, Version 6.3.0

.NET Framework 4.5.1

The Unicode Standard, Version 6.3.0

.NET Framework 4.5.2

The Unicode Standard, Version 6.3.0

.NET Framework 4.6

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.1

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.2

The Unicode Standard, Version 8.0.0

Además, .NET Framework admite la comparación de cadenas y la ordenación en función del estándar Unicode. En las versiones de .NET Framework a través de la .NET Framework 4, .NET Framework mantiene su propia tabla de datos de cadena. Esto también es así de versiones de .NET Framework a partir de la .NET Framework 4.5 ejecutando en Windows 7. A partir de la .NET Framework 4.5 se ejecuta en Windows 8 y versiones posteriores del sistema operativo Windows, la cadena de los delegados en tiempo de ejecución de comparaciones y ordenaciones de las operaciones en el sistema operativo. En la tabla siguiente se enumera las versiones de .NET Framework y las versiones del estándar Unicode en el carácter que se basan de comparación y ordenación.

Versión de .NET Framework

Versión del estándar Unicode

.NET Framework 1.1

The Unicode Standard, Version 4.0.0

.NET Framework 2.0

The Unicode Standard, Version 5.0.0

.NET Framework 3.5

The Unicode Standard, Version 5.0.0

.NET Framework 4

The Unicode Standard, Version 5.0.0

.NET Framework 4.5y versiones posteriores en Windows 7

The Unicode Standard, Version 5.0.0

.NET Framework 4.5y versiones posteriores en sistemas operativos Windows posteriores y Windows 8

The Unicode Standard, Version 6.3.0

En .NET Framework, un String objeto puede incluir los caracteres nulos incrustados, que cuentan como parte de la longitud de la cadena. Sin embargo, en algunos lenguajes como C y C++, un carácter null indica el final de una cadena; no se considera una parte de la cadena y no se cuentan como parte de la longitud de la cadena. Esto significa que no son necesariamente válidos cuando se aplica a los siguientes supuestos comunes que los programadores de C y C++ o las bibliotecas escritos en C o C++ podrían hacer sobre las cadenas String objetos:

  • El valor devuelto por la strlen o wcslen funciones no es necesariamente igual a String.Length.

  • La cadena creada por el strcpy_s o wcscpy_s funciones no es necesariamente idéntica a la cadena creada por el String.Copy método.

Debe asegurarse de que código de C y C++ nativo que crea una instancia de String objetos y el código que se pasa String la invocación de objetos a través de la plataforma, no se da por supuesto que un carácter nulo incrustado marca el final de la cadena.

Caracteres nulos incrustados en una cadena también se tratan de manera diferente cuando una cadena está ordenada (o en comparación con) y cuando se busca una cadena. Caracteres null se omiten cuando se realizan las comparaciones dependientes de la referencia cultural entre dos cadenas, incluyendo las comparaciones con la referencia cultural invariable. Se consideran sólo para las comparaciones ordinales de ordinal o entre mayúsculas y minúsculas. Por otro lado, siempre se consideran caracteres nulos incrustados al buscar una cadena con métodos como Contains, StartsWith, y IndexOf.

Un índice es la posición de un Char objeto (no un carácter Unicode) en un String. Un índice es un número no negativo basado en cero que se inicia desde la primera posición en la cadena, que es la posición de índice cero. Un número de métodos de búsqueda, como IndexOf y LastIndexOf, devuelve el índice de un carácter o subcadena en la instancia de cadena.

El Chars propiedad le permite tener acceso a individuales Char objetos por su posición de índice en la cadena. Dado que la Chars propiedad es la propiedad predeterminada (en Visual Basic) o el indizador (en C#), que puede tener acceso a la persona Char objetos en una cadena con código como el siguiente. Este código busca un espacio en blanco o caracteres de puntuación en una cadena para determinar cuántas palabras contiene la cadena.

using System;

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

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

Porque el String la clase implementa la IEnumerable interfaz, también puede iterar por la Char objetos en una cadena mediante el uso de un foreach construcción, como se muestra en el ejemplo siguiente.

using System;

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

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

Valores de índice consecutivos podrían no corresponderse con caracteres Unicode consecutivos, ya que un carácter puede ser codificado con Unicode como más de un Char objeto. En concreto, una cadena puede contener varios caracteres unidades de texto que están formadas por un carácter base seguido por uno o más caracteres de combinación o por los pares suplentes. Para trabajar con caracteres Unicode en lugar de Char objetos, use la System.Globalization.StringInfo y TextElementEnumerator clases. En el ejemplo siguiente se ilustra la diferencia entre el código que funciona con Char objetos y el código que funciona con caracteres Unicode. Compara el número de caracteres o elementos de texto de cada palabra de una frase. La cadena incluye dos secuencias de un carácter base seguidos por un carácter de combinación.

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

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

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

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

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

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

Este ejemplo funciona con elementos de texto mediante el StringInfo.GetTextElementEnumerator método y la TextElementEnumerator clase para enumerar todos los elementos de texto en una cadena. También puede recuperar una matriz que contiene el índice inicial de cada elemento de texto mediante una llamada a la StringInfo.ParseCombiningCharacters método.

Para obtener más información sobre cómo trabajar con unidades de texto en lugar de individuales Char valores, consulte el StringInfo clase.

Es una cadena que se ha declarado pero no se ha asignado un valor null. Intentos de llamar a métodos en esa cadena produce una NullReferenceException. Una cadena nula es diferente de una cadena vacía, que es una cadena cuyo valor es "" o String.Empty. En algunos casos, pasando una cadena nula o una cadena vacía como argumento en una llamada al método produce una excepción. Por ejemplo, se pasa una cadena nula para la Int32.Parse método produce una ArgumentNullExceptiony pasar una cadena vacía produce un FormatException. En otros casos, un argumento de método puede ser una cadena nula o una cadena vacía. Por ejemplo, si va a proporcionar un IFormattable implementación para una clase, desea rasgos, como una cadena nula y una cadena vacía con el especificador de formato general ("G").

El String clase incluye los siguientes métodos de dos comodidad que permiten comprobar si una cadena es null o está vacío:

  • IsNullOrEmpty, lo que indica si una cadena es null o es igual a String.Empty. Este método elimina la necesidad de utilizar código como el siguiente:

    if (str == null || str.Equals(String.Empty))
    
  • IsNullOrWhiteSpace, que indica si una cadena es null, es igual a String.Empty, o consta únicamente de caracteres de espacio en blanco. Este método elimina la necesidad de utilizar código como el siguiente:

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

En el ejemplo siguiente se usa el IsNullOrEmpty método en el IFormattable.ToString implementación personalizado Temperature clase. El método es compatible con las cadenas de formato "G", "C", "F" y "K". Si una cadena de formato vacía o un formato de cadena cuyo valor es null se pasa al método, se cambia su valor a la cadena de formato "G".

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

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

Un String objeto se denomina inmutable (de solo lectura), porque no se puede modificar su valor una vez creada. Métodos que parecen modificar una String objeto devolverá un nuevo String objeto que contiene la modificación.

Dado que las cadenas son inmutables, rutinas de manipulación de cadena que llevan a cabo repiten adiciones o eliminaciones en lo que parece ser que una única cadena que puede suponer una reducción significativa del rendimiento. Por ejemplo, en el código siguiente se usa un generador de números aleatorios para crear una cadena con 1000 caracteres en el intervalo 0 x 0001 a 0x052F. Aunque el código parece que utiliza la concatenación de cadenas para anexar un carácter de nueva a la cadena existente denominada str, realmente crea un nuevo String objeto para cada operación de concatenación.

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

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

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

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

Puede usar el StringBuilder clase en lugar de la String clase para las operaciones que realizan varios cambios en el valor de una cadena. A diferencia de las instancias de la String (clase), StringBuilder objetos son mutables; al concatenar, anexar o eliminar subcadenas de una cadena, las operaciones se realizan en una sola cadena. Cuando haya terminado de modificar el valor de un StringBuilder objeto, puede llamar a su StringBuilder.ToString método para convertir en una cadena. En el ejemplo siguiente se reemplaza el String usado en el ejemplo anterior para concatenar 1000 caracteres aleatorios en el intervalo de 0 x 0001 a 0x052F con un StringBuilder objeto.

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

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

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

Los miembros de la String clase realizar operaciones de (lingüísticas) ordinales o dependientes de la referencia cultural en un String objeto. Una operación ordinal actúa sobre el valor numérico de cada Char objeto. Una operación de la cuenta de la referencia cultural actúa sobre el valor de la Stringobjeto y entre mayúsculas y minúsculas específica de la referencia cultural de toma, ordenación, el formato y las reglas de análisis en cuenta. Operaciones sensibles a la referencia cultural que se ejecutan en el contexto de una referencia cultural explícitamente declarada o la referencia cultural implícita actual. Los dos tipos de operaciones pueden producir resultados muy diferentes cuando se ejecutan en la misma cadena.

.NET Framework también admite las operaciones de cadena lingüísticas de la referencia cultural usando la referencia cultural invariable (CultureInfo.InvariantCulture), flexible que se basa en la configuración de referencia cultural del idioma inglés independiente de la región. A diferencia de otras System.Globalization.CultureInfo configuración, la configuración de la referencia cultural de todos los idiomas se garantiza que permanezca coherente en un único equipo, del sistema al sistema como en las versiones de .NET Framework. La referencia cultural invariable puede ser considerada como un tipo de cuadro negro que garantiza la estabilidad de comparaciones de cadenas y ordenación en todas las referencias culturales.

System_CAPS_security Seguridad Nota

Si la aplicación adopta una decisión de seguridad sobre un identificador simbólico, como un nombre de archivo o canalización con nombre, o sobre los datos persistentes, como los datos basados en texto en un archivo XML, la operación debe utilizar una comparación ordinal en lugar de una comparación dependiente de la referencia cultural. Esto es porque una comparación dependiente de la referencia cultural puede producir resultados diferentes que dependen de la referencia cultural en vigor, mientras que una comparación de ordinales sólo depende del valor binario de los caracteres comparados.

System_CAPS_importantImportante

Mayoría de los métodos que realizan operaciones de cadena que incluye una sobrecarga que tenga un parámetro de tipo StringComparison, que le permite especificar si el método realiza una operación ordinal o cuenta de la referencia cultural. En general, debería llamar a esta sobrecarga para aclarar la intención del método de llamada al. Para obtener procedimientos recomendados y orientación para el uso de ordinal y dependiente de la referencia cultural operaciones con cadenas, vea Procedimientos recomendados para el uso de cadenas en .NET Framework.

Operaciones para mayúsculas y minúsculas, de análisis y formato, de comparación y ordenación, y comprobación de igualdad puede ser ordinales o dependientes de la referencia cultural. Las secciones siguientes tratan cada categoría de operación.

System_CAPS_tipSugerencia

Siempre debe llamar a una sobrecarga del método que realiza la intención del método de llamada clara. Por ejemplo, en lugar de llamar a la Compare(String, String) método para realizar una comparación dependiente de la referencia cultural de dos cadenas mediante las convenciones de la referencia cultural actual, debe llamar a la Compare(String, String, StringComparison) método con un valor de StringComparison.CurrentCulture para el comparisonType argumento. Para obtener más información, consulta Procedimientos recomendados para el uso de cadenas en .NET Framework.

Las reglas de mayúsculas y minúsculas determinan cómo cambiar las mayúsculas y minúsculas de un carácter Unicode; Por ejemplo, de minúsculas a mayúsculas. A menudo, se realiza una operación de mayúsculas y minúsculas antes de una comparación de cadenas. Por ejemplo, se puede convertir una cadena a mayúsculas para que se puede comparar con otra cadena en mayúsculas. Puede convertir los caracteres de una cadena en minúsculas mediante una llamada a la ToLower o ToLowerInvariant método y se pueden convertir a mayúsculas mediante una llamada a la ToUpper o ToUpperInvariant método. Además, puede usar el TextInfo.ToTitleCase método para convertir una cadena en mayúscula inicial.

Operaciones de mayúsculas y minúsculas pueden basarse en las reglas de la referencia cultural actual, una referencia cultural especificada o la referencia cultural invariable. Como asignaciones de mayúsculas y pueden variar según la referencia cultural utilizada, el resultado de las operaciones de mayúsculas y minúsculas puede variar en función de la referencia cultural. Las diferencias reales en mayúsculas y minúsculas son de tres tipos:

  • Las diferencias en el caso de la asignación de LATIN CAPITAL LETTER I (U + 0049), LATINO pequeña letra I (U + 0069), LATIN CAPITAL LETTER I con punto superior (0130) y LATIN pequeña letra sin punto I (0131). Tr-TR (turco (Turquía)) y referencias culturales az-Latn-AZ (latino, Azerbaiyán) y en el tr, az y referencias culturales neutras de az-Latn, es el equivalente en minúsculas de la letra mayúscula LATÍN I latina pequeña letra sin punto I, y es equivalente en mayúsculas del alfabeto LATÍN pequeña letra I mayúscula LATÍN I con punto por encima. En todas las demás referencias culturales, incluida la referencia cultural invariable, LATINO pequeña letra I y LATIN CAPITAL LETTER I son equivalentes en mayúsculas y minúsculas.

    En el ejemplo siguiente se muestra cómo una comparación de cadenas que se ha diseñado evitar el acceso al sistema de archivos puede producir un error si se basa en una comparación de mayúsculas y minúsculas de la referencia cultural. (Las convenciones de mayúsculas y minúsculas de la referencia cultural invariable deben haberse utilizadas.)

    using System;
    using System.Globalization;
    using System.Threading;
    
    public class Example
    {
       const string disallowed = "file";
    
       public static void Main()
       {
          IsAccessAllowed(@"FILE:\\\c:\users\user001\documents\FinancialInfo.txt");
       }
    
       private static void IsAccessAllowed(String resource)
       {
          CultureInfo[] cultures = { CultureInfo.CreateSpecificCulture("en-US"),
                                     CultureInfo.CreateSpecificCulture("tr-TR") };
          String scheme = null;
          int index = resource.IndexOfAny( new Char[] { '\\', '/' } );
          if (index > 0) 
             scheme = resource.Substring(0, index - 1);
    
          // Change the current culture and perform the comparison.
          foreach (var culture in cultures) {
             Thread.CurrentThread.CurrentCulture = culture;
             Console.WriteLine("Culture: {0}", CultureInfo.CurrentCulture.DisplayName);
             Console.WriteLine(resource);
             Console.WriteLine("Access allowed: {0}", 
                               ! String.Equals(disallowed, scheme, StringComparison.CurrentCultureIgnoreCase));      
             Console.WriteLine();
          }   
       }
    }
    // The example displays the following output:
    //       Culture: English (United States)
    //       FILE:\\\c:\users\user001\documents\FinancialInfo.txt
    //       Access allowed: False
    //       
    //       Culture: Turkish (Turkey)
    //       FILE:\\\c:\users\user001\documents\FinancialInfo.txt
    //       Access allowed: True
    
  • Diferencias de asignaciones de mayúsculas y entre la referencia cultural invariable y todas las demás referencias culturales. En estos casos, con las reglas de mayúsculas y minúsculas de la referencia cultural invariable para cambiar un carácter en mayúsculas o minúsculas, devuelven el mismo carácter. Para todas las demás referencias culturales, devuelve un carácter distinto. Algunos de los caracteres afectados se enumeran en la tabla siguiente.

    Carácter

    Si cambia a

    Valores devueltos

    INICIO DE SESIÓN DE MICRAS (00B5)

    Mayúsculas

    LETRA GRIEGA MU MAYÚSCULA (U +-39 ° C)

    LETRA LATINA MAYÚSCULA I CON PUNTO ANTERIORMENTE (0130)

    Minúsculas

    LETRA LATINA MINÚSCULA I (0069)

    LETRA LATINA MINÚSCULA SIN PUNTO I (0131)

    Mayúsculas

    LETRA LATINA MAYÚSCULA I (0049)

    LETRA LATINA MINÚSCULA S LARGA (017F)

    Mayúsculas

    LATIN CAPITAL LETTER S (0053)

    D. LETRA LATINA MAYÚSCULA A MINÚSCULA Z CON ACENTO CIRCUNFLEJO (U + 01C 5)

    Minúsculas

    LETRA LATINA MINÚSCULA DZ CON ACENTO CIRCUNFLEJO (U + 01C 6)

    YPOGEGRAMMENI GRIEGO COMBINABLE (0345)

    Mayúsculas

    LETRA GRIEGA MAYÚSCULA IOTA (0399)

  • Diferencias en asignaciones mayúsculas y minúsculas de pares de dos letras mayúsculas y minúsculas mezcladas en el intervalo de caracteres ASCII. En la mayoría de las referencias culturales, un par de dos letras mayúsculas y minúsculas mezcladas es igual a la par equivalente de dos letras en mayúscula o minúscula. Esto no es cierto para los siguientes pares de dos letras en las siguientes referencias culturales, porque en cada caso se comparan con un dígrafo:

    • "lJ" y "nJ" en la referencia cultural hr-HR (croata (Croacia)).

    • "cH" en el cs-CZ (checo (República Checa)) y referencias culturales sk-SK (eslovaco (Eslovaquia)).

    • "aA" en la referencia cultural da-DK (danés (Dinamarca)).

    • "cS", "dZ", "dZS", "nY", "sZ", "tY" y "zS" en la referencia cultural hu-HU (húngaro (Hungría)).

    • "cH" y "lL" en la referencia cultural es-ES_tradnl (español (España, tradicional)).

    • "cH", "gI", "kH", "nG" "nH", "pH", "qU", "tH" y "tR" en la referencia cultural vi-VN (vietnamita (Vietnam)).

    Sin embargo, es poco habitual encontrar una situación en la que una comparación dependiente de la referencia cultural de estos pares crea problemas, porque estos pares son comunes en identificadores o cadenas fijas.

El ejemplo siguiente muestra algunas de las diferencias en las reglas de mayúsculas y minúsculas entre distintas referencias culturales al convertir cadenas a mayúsculas.

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

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

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

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

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

Análisis y formato son operaciones inversas. Reglas de formato determinan cómo convertir un valor, como una fecha y hora o un número en su representación de cadena, mientras que las reglas de análisis determinan cómo convertir una representación de cadena en un valor como una fecha y hora. Las reglas de análisis y formato dependen de las convenciones culturales. En el ejemplo siguiente se muestra las ambigüedades que pueden surgir al interpretar una cadena de fecha específica de la referencia cultural. Sin conocer las convenciones de la referencia cultural que se usó para generar una cadena de fecha, no es posible saber si 01/03/2011, 3/1/2011 y 01/03/2011 representan el 3 de enero de 2011 o el 1 de marzo de 2011.

using System;
using System.Globalization;

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

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

De forma similar, como se muestra en el siguiente ejemplo, una sola cadena puede producir fechas diferentes dependiendo de la referencia cultural cuyas convenciones se usan en la operación de análisis.

using System;
using System.Globalization;

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

Convenciones para comparar y ordenar cadenas varían culturales. Por ejemplo, el criterio de ordenación puede basarse en fonética o en la representación visual de caracteres. En los idiomas de Asia oriental, los caracteres se ordenan teniendo en cuenta los trazos y el radical de los ideogramas. El criterio de ordenación también depende del orden que se emplea en los distintos idiomas y referencias culturales para el alfabeto. Por ejemplo, el idioma danés tiene un carácter "Æ" que se ordena después de la "Z" en el alfabeto. Además, se pueden realizar comparaciones entre mayúsculas y minúsculas o mayúsculas de minúsculas, y en algunos casos también difieren las reglas de mayúsculas y minúsculas en la referencia cultural. Comparación ordinal, por otro lado, utiliza los puntos de código Unicode de los caracteres individuales de una cadena al comparar y ordenar cadenas.

Las reglas de ordenación determinan que el orden alfabético de caracteres Unicode y cómo dos cadenas se comparan entre sí. Por ejemplo, el String.Compare(String, String, StringComparison) método compara dos cadenas en función de la StringComparison parámetro. Si el valor del parámetro es StringComparison.CurrentCulture, el método realiza una comparación lingüística que usa las convenciones de la referencia cultural actual; si el valor del parámetro es StringComparison.Ordinal, el método realiza una comparación ordinal. Por lo tanto, como muestra el siguiente ejemplo, si la referencia cultural actual es inglés Inglés, la primera llamada a la String.Compare(String, String, StringComparison) método (mediante la comparación dependiente de la referencia cultural) considera "a" menor que "A", pero la segunda llamada al método mismo (mediante la comparación ordinal) considera que "a" mayor que "A".

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

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

.NET Framework admite word, cadena y las reglas de ordenación ordinal:

  • Una operación de ordenación de palabras realiza una comparación de cadenas donde se tiene en cuenta la referencia cultural y donde ciertos caracteres Unicode no alfanuméricos pueden tener asignados pesos especiales. Por ejemplo, el guión (-) podría tener un peso muy pequeño asignado para que las "cadenas coop" y "Co-op" aparecerían juntos en una lista ordenada. Para obtener una lista de los Stringmétodos que comparan dos cadenas con las reglas de ordenación de palabras, consulte el las operaciones de cadena por categoría sección.

  • Una ordenación por cadena también realiza una comparación dependiente de la referencia cultural. Es similar a una ordenación por palabra, salvo que no hay casos especiales, y todos los símbolos no alfanuméricos preceden a todos los caracteres Unicode alfanuméricos. Se pueden comparar dos cadenas mediante las reglas de ordenación de cadena mediante una llamada a la CompareInfo.Compare sobrecargas de método que tienen un options proporcionó el parámetro que es un valor de CompareOptions.StringSort. Tenga en cuenta que es el único método que .NET Framework proporciona para comparar dos cadenas con reglas de ordenación de cadenas.

  • Una ordenación ordinal compara las cadenas basadas en el valor numérico de cada objeto Char en la cadena. Una comparación ordinal es automáticamente entre mayúsculas y minúsculas porque las versiones en mayúsculas y minúsculas de un carácter tienen distintos puntos de código. Sin embargo, si el caso no es importante, puede especificar una comparación ordinal que omita la distinción. Esto es equivalente a convertir la cadena a mayúsculas mediante la referencia cultural invariable y, a continuación, realizar una comparación ordinal en el resultado. Para obtener una lista de los String métodos que comparan dos cadenas con las reglas de ordenación ordinal, vea el las operaciones de cadena por categoría sección.

Una comparación dependiente de la referencia cultural es cualquier comparación que utiliza explícita o implícitamente un CultureInfo objeto, incluida la referencia cultural invariable especificado por el CultureInfo.InvariantCulture propiedad. La referencia cultural implícita es la referencia cultural actual, que se especifica mediante la Thread.CurrentCulture y CultureInfo.CurrentCulture propiedades. Hay variaciones considerables en el criterio de ordenación de caracteres alfabéticos (es decir, los caracteres para los que el Char.IsLetter propiedad devuelve true) entre distintas referencias culturales. Puede especificar una comparación de la referencia cultural que utiliza las convenciones de una referencia cultural concreta proporcionando un CultureInfo el objeto a un método de comparación de cadenas como Compare(String, String, CultureInfo, CompareOptions). Puede especificar una comparación dependiente de la referencia cultural que usa las convenciones de la referencia cultural actual si se suministra StringComparison.CurrentCulture, StringComparison.CurrentCultureIgnoreCase, o cualquier miembro de la CompareOptions enumeración distinto de CompareOptions.Ordinal o CompareOptions.OrdinalIgnoreCase a una sobrecarga adecuada de la Compare método. Una comparación dependiente de la referencia cultural generalmente es apropiada para la ordenación, mientras que una comparación ordinal no lo es. Una comparación ordinal generalmente es apropiada para determinar si dos cadenas son iguales (es decir, para determinar la identidad), mientras que una comparación dependiente de la referencia cultural no lo es.

En el ejemplo siguiente se ilustra la diferencia entre la comparación ordinal y de cuenta de la referencia cultural. Este ejemplo devuelve tres cadenas, "Apple", "Æble" y "AEble", mediante la comparación ordinal y las convenciones de las referencias culturales da-DK y en-US (cada uno de los cuales es la referencia cultural predeterminada en el momento en el Compare se llama al método). Dado que el idioma danés trata el carácter "Æ" como carácter individual y ordena después de la "Z" en el alfabeto, la cadena "Æble" es mayor que "Apple". Sin embargo, "Æble" no se considera equivalente a "AEble", por lo que también es mayor que "AEble" "Æble". La referencia cultural en-US no incluye la letra "Æ", pero lo trata como equivalente a "AE", que explica por qué "Æble" es menor que "Apple" pero igual a "AEble". Comparación ordinal, por otro lado, considera "Apple" para ser menor que "Æble" y "Æble" debe ser mayor que "AEble".

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

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

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

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

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

Utilice las siguientes directrices generales para elegir un método de comparación de ordenación o de cadena adecuado:

  • Si desea que las cadenas se ordenará en función de la referencia cultural del usuario, debe ordénelas en función de las convenciones de la referencia cultural actual. Si cambia la referencia cultural del usuario, el orden de cadenas ordenadas también cambiará en consecuencia. Por ejemplo, una aplicación de diccionario de sinónimos siempre debería ordenar palabras en función de la referencia cultural del usuario.

  • Si desea que las cadenas se ordenen según las convenciones de una referencia cultural concreta, debe ordénelas proporcionando un CultureInfo objeto que representa esa referencia cultural a un método de comparación. Por ejemplo, en una aplicación diseñada para enseñar a los alumnos en un idioma determinado, desea que las cadenas se ordenen según las convenciones de una de las referencias culturales que habla ese idioma.

  • Si desea que el orden de las cadenas permanezca inalterada entre distintas referencias culturales, debería ordénelas en función de las convenciones de la referencia cultural invariable o utilizar una comparación ordinal. Por ejemplo, se utilizaría a una ordenación ordinal para organizar los nombres de archivos, procesos, exclusiones mutuas o canalizaciones con nombre.

  • Para obtener una comparación que implica una decisión de seguridad (por ejemplo, si un nombre de usuario es válido), siempre debe realizar una prueba de igualdad ordinal mediante una llamada a una sobrecarga de la Equals método.

System_CAPS_noteNota

La cuenta de la referencia cultural de ordenación y mayúsculas y minúsculas de las reglas usadas en la comparación de cadenas dependen de la versión de .NET Framework. En el .NET Framework 4.5 con el Windows 8 sistema operativo, ordenación, mayúsculas y minúsculas, normalización y obtener información de carácter Unicode se ajusta al estándar Unicode 6.0. En otros sistemas operativos, se ajusta al estándar Unicode 5.0.

Para obtener más información acerca de palabras, cadenas y las reglas de ordenación ordinal, vea el System.Globalization.CompareOptions tema. Para obtener recomendaciones adicionales sobre cuándo usar cada regla, consulte Procedimientos recomendados para el uso de cadenas en .NET Framework.

Por lo general, no se llama cadena métodos de comparación como Compare directamente para determinar el criterio de ordenación de cadenas. En su lugar, se llaman a métodos de comparación, como los métodos de ordenación Array.Sort o List<T>.Sort. En el ejemplo siguiente se realiza cuatro operaciones de ordenación diferentes (ordenación de la palabra usando la referencia cultural actual, usando la referencia cultural invariable de ordenación de palabras, ordenación ordinal y ordenación de cadena usando la referencia cultural invariable) sin llamar explícitamente a un método de comparación de cadenas, aunque especifique el tipo de comparación que se va a usar. Tenga en cuenta que cada tipo de ordenación genera una única ordenación de cadenas en la matriz.

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

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

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

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

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

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

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

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

Internamente,.NET Framework utiliza claves de ordenación para admitir la comparación de cadenas de culturallysensitive. A cada carácter de una cadena se le otorgan varias categorías de prioridad de ordenación, entre las que se incluyen el orden alfabético, el uso de mayúsculas y minúsculas y los signos diacríticos. Un criterio de ordenación, representado por la SortKey clase, proporciona un repositorio de estas categorías para una determinada cadena. Si la aplicación realiza un gran número de búsqueda o clasificación de las operaciones en el mismo conjunto de cadenas, puede mejorar su rendimiento generando y almacenando las claves de ordenación para todas las cadenas que utiliza. Cuando se requiere una operación de comparación u ordenación, utilice las claves de ordenación en lugar de cadenas. Para obtener más información, vea la clase SortKey.

Si no se especifica una convención de comparación de cadena, métodos de ordenación como Array.Sort(Array) realizar una ordenación culturales, distingue mayúsculas de minúsculas en las cadenas. En el ejemplo siguiente se muestra cómo cambiar la referencia cultural actual afecta al orden de cadenas ordenadas en una matriz. Crea una matriz de tres cadenas. En primer lugar, se establece la propiedad System.Threading.Thread.CurrentThread.CurrentCulture en en-US y se llama al método Array.Sort(Array). El criterio de ordenación resultante se basa en las convenciones de ordenación de la referencia cultural Inglés (Estados Unidos). A continuación, el ejemplo establece la propiedad System.Threading.Thread.CurrentThread.CurrentCulture en da-DK y llama de nuevo al método Array.Sort. Observe que el criterio de ordenación resultante difiere del resultado de en-US porque usa las convenciones de ordenación correspondientes a la referencia cultural Danés (Dinamarca).

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

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

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

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

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

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

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

Si su objetivo principal en la comparación de cadenas es determinar si son iguales, se debe llamar a la String.Equals método. Normalmente, se debe usar Equals para realizar una comparación ordinal. El String.Compare método está pensado principalmente para ordenar las cadenas.

Métodos de búsqueda de cadenas como String.StartsWith y String.IndexOf, también puede realizar comparaciones de cadenas dependientes de la referencia cultural u ordinales. En el ejemplo siguiente se ilustra las diferencias entre comparaciones ordinal y dependiente de la referencia cultural usando el IndexOf método. Una búsqueda de cuenta de la referencia cultural en la que la referencia cultural actual es inglés (Estados Unidos) tiene en cuenta la subcadena "oe" para que coincida con la ligadura "œ". Dado un guion (00AD) es un carácter de ancho cero, la búsqueda trata el guion como equivalente a Empty y encuentra una coincidencia al principio de la cadena. Por otro lado, una búsqueda ordinal, no encuentra a una coincidencia en cualquiera de los casos.

using System;

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

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

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

Métodos de búsqueda de cadenas como String.StartsWith y String.IndexOf, también puede realizar la cuenta de la referencia cultural o comparaciones de cadenas ordinales para determinar si un carácter o una subcadena que se encuentra en una cadena especificada.

Los métodos de búsqueda en el String clase que buscan un carácter individual, como elIndexOf método o uno de un juego de caracteres, como el IndexOfAny método, todos realizan una búsqueda ordinal. Para llevar a cabo una búsqueda de cuenta de la referencia cultural de un carácter, se debe llamar a un CompareInfo método como CompareInfo.IndexOf(String, Char) o CompareInfo.LastIndexOf(String, Char). Tenga en cuenta que los resultados de búsqueda de un carácter mediante la comparación ordinal y dependiente de la referencia cultural pueden ser muy diferentes. Por ejemplo, una búsqueda de un carácter Unicode compuesto como la ligadura "Æ" (U + 00 C 6) podría coincidir con cualquier aparición de sus componentes en la secuencia correcta, como "AE" (U + 041U + 0045), dependiendo de la referencia cultural. En el ejemplo siguiente se muestra la diferencia entre el String.IndexOf(Char) y CompareInfo.IndexOf(String, Char) métodos cuando se busca un carácter individual. La ligadura "æ" (00E6) se encuentra en la cadena "aérea" cuando se usa las convenciones de la referencia cultural en-US, pero no cuando se utilizan las convenciones de la referencia cultural da-DK o al realizar una comparación ordinal.

using System;
using System.Globalization;

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

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

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

Por otro lado, String métodos que busquen una cadena en lugar de un carácter de realiza una búsqueda de cuenta de la referencia cultural, si las opciones de búsqueda no se especifican explícitamente a un parámetro de tipo de la clase StringComparison. La única excepción es Contains, que realiza una búsqueda ordinal.

Use la String.Compare método para determinar la relación de dos cadenas en el criterio de ordenación. Normalmente, se trata de una operación de la cuenta de la referencia cultural. En cambio, llame a la String.Equals método para comprobar la igualdad. Puesto que la prueba de igualdad compara normalmente proporcionados por el usuario con alguna cadena conocido, como un nombre de usuario válido, una contraseña o una ruta de acceso del sistema de archivos, que normalmente es una operación ordinal.

System_CAPS_warningAdvertencia

Es posible comprobar la igualdad mediante una llamada a la String.Compare método y determinar si el valor devuelto es cero. Sin embargo, no se recomienda esta práctica. Para determinar si dos cadenas son iguales, primero debe llamar a una de las sobrecargas de los String.Equals método. La sobrecarga preferida para llamar a es la instancia Equals(String, StringComparison) método o el método estático Equals(String, String, StringComparison) método, porque ambos métodos incluyen un System.StringComparison parámetro que especifique explícitamente el tipo de comparación.

En el ejemplo siguiente se muestra el riesgo que supone realizar una comparación dependiente de la referencia cultural para la igualdad cuando un ordinal uno debe usarse en su lugar. En este caso, la intención del código consiste en Prohibir al sistema de archivos de las direcciones URL que comienzan con "FILE://" o "file://" mediante la realización de una comparación entre mayúsculas y minúsculas del principio de una dirección URL con la cadena "FILE://". Sin embargo, si se realiza una comparación dependiente de la referencia cultural usando la referencia cultural del turco (Turquía) en una dirección URL que comienza con "file://", la comparación de igualdad produce un error, porque el turco equivalente en mayúsculas de minúsculas "i" es "İ" en lugar de "I". Como resultado, sin darse cuenta se permite el acceso al sistema de archivos. Por otro lado, si se realiza una comparación ordinal, la comparación de igualdad se realiza correctamente y se deniega el acceso al sistema de archivos.

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

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

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

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

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

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

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

Algunos caracteres Unicode tienen varias representaciones. Por ejemplo, cualquiera de los siguientes puntos de código puede representar la letra "ắ":

  • U + 1EAF

  • U + 0103 U + 0301

  • U + 0061 U + 0306 U + 0301

Varias representaciones de un único carácter complican la búsqueda, clasificación, coincidencia y otras operaciones de cadena.

El estándar Unicode define un proceso denominado normalización, que devuelve una representación binaria de un carácter Unicode de cualquiera de sus representaciones binarias equivalentes. La normalización puede utilizar varios algoritmos, denominados formas de normalización, que siguen reglas distintas. .NET Framework admite formas de normalización Unicode C, D, KC y KD. Cuando las cadenas que se han normalizado a la misma forma de normalización, que se puedan comparar utilizando comparación ordinal.

Una comparación ordinal es una comparación binaria del valor escalar Unicode de correspondientes Char objetos de cada cadena. LaString clase incluye una serie de métodos que puede realizar una comparación ordinal, incluidos los siguientes:

Puede determinar si una cadena se normaliza a la forma de normalización C mediante una llamada a la String.IsNormalized() método, o se puede llamar a la String.IsNormalized(NormalizationForm) método para determinar si una cadena se normaliza respecto a una forma de normalización especificada. También puede llamar a la String.Normalize() método para convertir una cadena en forma de normalización C, o bien puede llamar a la String.Normalize(NormalizationForm) método para convertir una cadena en una forma de normalización especificada. Para obtener información detallada sobre la normalización y la comparación de cadenas, vea la Normalize() y Normalize(NormalizationForm) métodos.

En el siguiente ejemplo ilustra la normalización de cadenas. Define la letra "ố" de tres maneras diferentes en tres cadenas diferentes y utiliza una comparación ordinal de igualdad para determinar que cada cadena se diferencia de las dos cadenas. A continuación, convierte todas las cadenas a las formas de normalización admitidas y vuelva a realiza una comparación ordinal de cada cadena en una forma de normalización especificada. En cada caso, la segunda prueba de igualdad muestra que las cadenas son iguales.

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

public class Example
{
   private static StreamWriter sw;

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

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

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

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

      sw.Close();   
   }

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

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

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

Para obtener más información sobre la normalización y formas de normalización, consulte System.Text.NormalizationForm, así como Unicode Standard Annex #15: Unicode Normalization Forms y Normalization FAQ en el sitio Web unicode.org.

El String clase proporciona miembros para comparar cadenas, realizar pruebas cadenas para la igualdad, buscar caracteres o subcadenas en una cadena, modificar una cadena, extraer subcadenas de una cadena, la combinación de cadenas, dar formato a valores, copiar una cadena y normalizar una cadena.

Puede comparar cadenas para determinar su posición relativa en el criterio de ordenación mediante la siguiente Stringmétodos:

  • CompareDevuelve un entero que indica la relación de una cadena en una segunda cadena en el criterio de ordenación.

  • CompareOrdinalDevuelve un entero que indica la relación de una cadena en una segunda cadena que se basa en una comparación de sus puntos de código.

  • CompareToDevuelve un entero que indica la relación de la instancia de cadena actual con otra cadena en el criterio de ordenación. El CompareTo(String) método proporciona la IComparable y IComparable<T> implementaciones para la String clase.

Se llama a la Equals método para determinar si dos cadenas son iguales. La instancia Equals(String, String, StringComparison) y el método estático Equals(String, StringComparison) sobrecargas permiten especificar si la comparación es ordinal o de cuenta de la referencia cultural, y si el caso se considera o pasa por alto. Mayoría de las pruebas de igualdad es ordinal y comparaciones de igualdad que determinan el acceso a un recurso del sistema (por ejemplo, un objeto de sistema de archivos) siempre deben ser ordinales.

La String clase incluye dos tipos de métodos de búsqueda:

System_CAPS_warningAdvertencia

Si desea buscar una cadena de un patrón determinado en lugar de una subcadena concreta, debe usar expresiones regulares. Para obtener más información, consulta Expresiones regulares de .NET Framework.

La String clase incluye los métodos siguientes que aparecen modificar el valor de una cadena:

  • InsertInserta una cadena en la actual String instancia.

  • PadLeftInserta una o más apariciones de un carácter especificado al principio de una cadena.

  • PadRightInserta una o más apariciones de un carácter especificado al principio de una cadena.

  • Removeelimina una subcadena de la actual String instancia.

  • Replacereemplaza una subcadena por otra subcadena actual String instancia.

  • ToLowery ToLowerInvariant convertir todos los caracteres de una cadena a minúsculas.

  • ToUppery ToUpperInvariant convertir todos los caracteres de una cadena a mayúsculas.

  • TrimQuita todas las apariciones de un carácter desde el principio y final de una cadena.

  • TrimEndQuita todas las apariciones de un carácter de final de una cadena.

  • TrimStartQuita todas las apariciones de un carácter desde el principio de una cadena.

System_CAPS_importantImportante

Todos los métodos de modificación de cadena devuelven un nuevo String objeto. Pero no modifican el valor de la instancia actual.

El String.Split método separa una cadena única en varias cadenas. Las sobrecargas del método le permiten especificar varios delimitadores, para determinar el número máximo de subcadenas que se extrae el método y para determinar si las cadenas vacías (que se producen cuando delimitadores son adyacentes) se incluyen entre las cadenas devueltas.

El siguiente String métodos pueden utilizarse para concatenar cadenas:

  • Concatcombina una o varias subcadenas en una sola cadena.

  • JoinConcatena una o varias subcadenas en un solo elemento y se agrega un separador entre cada subcadena.

El String.Format método usa la característica de formato compuesto para reemplazar uno o más marcadores de posición en una cadena con la representación de cadena de algún objeto o valor. El Format método se utiliza a menudo para hacer lo siguiente:

  • Para incrustar la representación de cadena de un valor numérico en una cadena.

  • Para incrustar la representación de cadena de un valor de fecha y hora en una cadena.

  • Para incrustar la representación de cadena de un valor de enumeración en una cadena.

  • Para incrustar la representación de cadena de un objeto que admite el IFormattable interfaz en una cadena.

  • Para justificar a la derecha o justificar a la izquierda una subcadena en un campo dentro de una cadena mayor.

Para obtener información detallada sobre cómo dar formato a las operaciones y ejemplos, vea el Format sobrecargar el resumen.

Puede llamar a los siguientes String métodos para realizar una copia de una cadena:

  • CloneDevuelve una referencia a un archivo String objeto.

  • Copycrea una copia de una cadena existente.

  • CopyTocopia una parte de una cadena en una matriz de caracteres.

En Unicode, un carácter individual puede tener varios puntos de código. Normalización convierte estos caracteres equivalentes en la misma representación binaria. El String.Normalize método realiza la normalización y la String.IsNormalized método determina si una cadena se normaliza.

Para obtener más información y un ejemplo, vea la Normalización sección anteriormente en este tema.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Este tipo es seguro para la ejecución de subprocesos.

Volver al principio
Mostrar: