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

 

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

Para examinar el código fuente de .NET Framework para este tipo, vea la 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 conjuntos de dos secuencias mediante especificado 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>)

Aplica una función especificada a los elementos correspondientes de dos secuencias, 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, descargue la referencia para verla sin conexión y recorrer (incluidas las revisiones y actualizaciones) durante la depuración; see instructions.

Una cadena es una colección secuencial de caracteres que se utiliza para representar texto. Un 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 sólo lectura). Para obtener más información acerca de la inmutabilidad de cadenas, vea la inmutabilidad y la clase StringBuilder más adelante en este tema. El tamaño máximo de un String objeto en memoria es 2GB o aproximadamente 1 mil millones de caracteres.

En esta sección:

Instancias de un objeto de cadena
Los 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
La inmutabilidad y la clase StringBuilder
Ordinal frente a las operaciones de 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 para una 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      
    
  • Al llamar a un String constructor de clase. En el ejemplo siguiente se crea una instancia de cadenas al llamar a varios de los constructores de clase. Tenga en cuenta que algunos de los constructores son punteros a matrices de caracteres o matrices de bytes con signo como parámetros. Visual Basic no admite llamadas a estos constructores. Para obtener información detallada sobre String constructores, consulte el String Resumen del constructor.

    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 & 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.
    
  • Recuperando una propiedad o llamada 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
    
  • Al llamar 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 para 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 mediante un valor escalar Unicode, también denominado punto de código Unicode o el valor ordinal (numérico) del carácter Unicode. Los puntos de código se codifican 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 que las cadenas están bien formadas, String los miembros de clase no garantizan que la cadena está bien formada.

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 requiera 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 adicional que se corresponden con los caracteres de los planos de Unicode suplementarios.

  • 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 U+10000 00E4. Como se muestra en el ejemplo siguiente, una comparación de la referencia cultural de igualdad indica que estas dos representaciones son iguales, aunque una comparación ordinal normal no. 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 intervalo de caracteres suplentes altos de U+D800 a U+DBFF. Las unidades de código de intervalo de caracteres suplentes bajos de U+DC00 a U+DFFF. Pares suplentes se utilizan para representar los planos de Unicode suplementarios 16 caracteres. 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 corresponden a Char valores.

Cada carácter de una cadena tiene una categoría de caracteres Unicode asociada, que se representa en .NET Framework mediante la UnicodeCategory (enumeración). Se puede determinar la categoría de un carácter o un par suplente llamando el 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 la categoría 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

La versión 2.0 de .NET Framework

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 ordenar según el 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 caracteres 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

La versión 2.0 de .NET Framework

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 y versiones posteriores de Windows 7

The Unicode Standard, Version 5.0.0

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

The Unicode Standard, Version 6.3.0

En .NET Framework, un String objeto puede incluir 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 parte de la cadena y no se cuentan como parte de la longitud de la cadena. Esto significa que las siguientes suposiciones comunes que los programadores de C y C++ o las bibliotecas escritas en C o C++ podrían hacer sobre las cadenas no son necesariamente válidas cuando se aplica a 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 nativo de C y C++ que crea una instancia String objetos y el código que se pasa String objetos a través de la plataforma de invocación, no suponga que un carácter null incrustado marca el final de la cadena.

Los 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 al realizar comparaciones entre dos cadenas, incluyendo las comparaciones con la referencia cultural invariable. Se consideran sólo para las comparaciones ordinales de ordinales 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 de base 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 permite obtener acceso a individuales Char objetos según su posición de índice en la cadena. Dado que el Chars es la propiedad predeterminada (en Visual Basic) o el indizador (en C#), puede tener acceso a la persona Char objetos en una cadena con código como el siguiente. Este código busca el espacio en blanco o signos de puntuación en una cadena para determinar el número de 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 a través de la Char objetos en una cadena mediante 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 pueden no corresponderse con caracteres Unicode consecutivos, ya que podría ser el carácter Unicode codificado 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 pares suplentes. Para trabajar con caracteres Unicode en lugar de Char objetos, utilice el System.Globalization.StringInfo y TextElementEnumerator clases. En el ejemplo siguiente se muestra 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, seguido de un carácter combinable.

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. Intentando 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, pasando una cadena null a la Int32.Parse método produce una ArgumentNullException, y 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, quiera comparar una cadena nula y una cadena vacía con el especificador de formato general ("G").

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

  • IsNullOrEmpty, que indica si una cadena está 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 la implementación de un 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, su valor se cambia 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 (sólo lectura), porque no se puede modificar su valor una vez creada. Los métodos que parecen modificar una String objeto realmente devuelve un nuevo String objeto que contiene la modificación.

Dado que las cadenas son inmutables, rutinas de manipulación de cadenas que realizan repiten adiciones o eliminaciones en lo que parece ser que una sola cadena puede suponer una importante penalización del rendimiento. Por ejemplo, el código siguiente utiliza 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 concatenación de cadenas para anexar un carácter de nueva a la cadena existente denominada str, realmente crea una nueva 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 utilizar el StringBuilder de 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, se realizan las operaciones en una sola cadena. Cuando haya terminado de modificar el valor de un StringBuilder de objeto, se puede llamar a su StringBuilder.ToString método para convertir en una cadena. En el ejemplo siguiente se sustituye el String utilizado 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 operaciones ordinales o la referencia cultural (lingüísticos) en un String objeto. Una operación ordinal actúa sobre el valor numérico de cada Char objeto. Una operación dependiente de la referencia cultural que se actúa sobre el valor de la Stringobjeto y mayúsculas y minúsculas específica de la referencia cultural de toma, ordenación, formato y reglas de análisis en cuenta. Las operaciones de 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 llevan a cabo en la misma cadena.

.NET Framework también admite las operaciones de cadena lingüístico de la referencia cultural usando la referencia cultural invariable (CultureInfo.InvariantCulture), flexible que se basa en la configuración de la 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 sean coherentes en un único equipo del sistema al sistema y en las versiones de .NET Framework. La referencia cultural puede ser considerada como un tipo de cuadro negro que garantiza la estabilidad de las comparaciones de cadenas y ordenación entre todas las referencias culturales.

System_CAPS_security Seguridad Nota

Si la aplicación toma 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 basados en texto de 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 en función 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

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

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

System_CAPS_tipSugerencia

Siempre se debe llamar una sobrecarga del método que realiza la intención del método de llamada clara. Por ejemplo, en lugar de llamar el Compare(String, String) método para realizar una comparación dependiente de la referencia cultural de dos cadenas usando las convenciones de la referencia cultural actual, se 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 podría convertir una cadena a mayúsculas para que se puede comparar con otra cadena en mayúsculas. Puede convertir los caracteres de una cadena a minúsculas llamando el 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 a mayúsculas.

Operaciones de mayúsculas y minúsculas pueden basarse en las reglas de la referencia cultural actual, la 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+10000 0049), LATIN pequeña letra I (U+10000 0069), LATIN CAPITAL LETTER I con punto superior (0130) y LATIN pequeña letra sin puntos I (0131). En las referencias culturales de az-Latn-AZ (latino, Azerbaiyán) y tr-TR (turco (Turquía)) y en tr, az y az-Latn neutras, es el equivalente en minúsculas de la letra mayúscula latina I LATÍN pequeña letra sin puntos I y es el equivalente en mayúsculas de LATÍN pequeña letra I mayúscula latina I con punto superior. En todas las demás referencias culturales, incluida la referencia cultural, LATIN pequeña letra I y LATIN CAPITAL LETTER I son equivalentes de 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 depende de 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 en las asignaciones de mayúsculas y la referencia cultural invariable y todas las demás referencias culturales. En estos casos, utilizando las reglas de mayúsculas y minúsculas de la referencia cultural invariable para cambiar un carácter en mayúsculas o minúsculas, devuelve el mismo carácter. Para todas las culturas y devuelve un carácter diferente. Algunos de los caracteres afectados se enumeran en la tabla siguiente.

    Carácter

    Si cambia a

    Valores devueltos

    SIGNO DE MICRAS (00B5)

    Mayúsculas

    LETRA GRIEGA MU (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 PUNTOS 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 DE COMBINACIÓN (0345)

    Mayúsculas

    LETRA GRIEGA MAYÚSCULA IOTA (0399)

  • Diferencias en las asignaciones de mayúsculas de pares de dos letras mayúsculas en el intervalo de caracteres ASCII. En la mayoría de las referencias culturales, un par de dos letras mayúsculas y minúsculas 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 para un digrama:

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

    • "cH" 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" "Centro de notificaciones", "pH", "qU',"tH"y"tR"en la referencia cultural de vi-VN (vietnamita (Vietnam)).

    Sin embargo, es habitual encontrar una situación en la que una comparación dependiente de la referencia cultural de estos pares crea problemas, ya que estos pares son habituales 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 cuando convierta 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 

Formato y análisis 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. Tanto el formato como reglas de análisis son dependientes de las convenciones culturales. El ejemplo siguiente 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 el 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 según 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 la fonética o en la representación visual de los 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, pueden ser comparaciones entre mayúsculas y minúsculas o mayúsculas de minúsculas y en algunos casos las reglas de mayúsculas y minúsculas también varían según 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 los 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 consiguiente, 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 de la referencia cultural) considera "a" menor que "A", pero la segunda llamada al mismo método (mediante la comparación ordinal) se considera "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 la palabra, cadena y 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 utilizando las reglas de ordenación de palabras, consulte el 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 la ordenación por palabra, salvo que no hay casos especiales y todos los símbolos alfanuméricos van antes todos los caracteres Unicode alfanuméricos. Se pueden comparar dos cadenas utilizando las reglas de ordenación de cadenas mediante una llamada a la CompareInfo.Compare sobrecargas de método que tienen un options parámetro que proporciona un valor de CompareOptions.StringSort. Tenga en cuenta que este es el único método que proporciona .NET Framework para comparar dos cadenas utilizando las 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 utilizando la referencia cultural invariable y, a continuación, realizar una comparación de ordinales en el resultado. Para obtener una lista de los String métodos que comparan dos cadenas utilizando las reglas de ordenación ordinal, vea el 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 especificada por el CultureInfo.InvariantCulture propiedad. La referencia cultural implícita es la referencia cultural actual, que se especifica mediante el Thread.CurrentCulture y CultureInfo.CurrentCulture Propiedades. Hay una variación considerable en el criterio de ordenación de caracteres alfabéticos (es decir, los caracteres que el Char.IsLetter 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 de objeto a un método de comparación de cadenas como Compare(String, String, CultureInfo, CompareOptions). Puede especificar una comparación de la referencia cultural que utiliza las convenciones de la referencia cultural actual proporcionando 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 de ordinales. Una comparación ordinal generalmente es apropiada para determinar si dos cadenas son iguales (es decir, para determinar la identidad), mientras que no es de una comparación dependiente de la referencia cultural.

En el ejemplo siguiente se ilustra la diferencia entre la comparación ordinal y 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 del Compare se llama al método). Dado que el idioma danés el carácter "Æ" trata como individuales 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 "Æble" también es mayor que "AEble". 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 que "Apple" es menor que "Æble" y "Æble" sea 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 ordenen en función de la referencia cultural del usuario, debe ordenarlas según 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 basadas en la referencia cultural del usuario.

  • Si desea que las cadenas se ordenen según las convenciones de una referencia cultural específica, se debe pedir 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 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 que no cambian entre distintas referencias culturales, debe ordénelas según 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 llamando a una sobrecarga de la Equals (método).

System_CAPS_noteNota

Las mayúsculas y minúsculas de las reglas utilizadas en la comparación de cadenas y de ordenación cultural dependen de la versión de .NET Framework. En el .NET Framework 4.5 se ejecuta 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 la palabra, cadena y reglas de ordenación ordinal, vea el System.Globalization.CompareOptions tema. Para obtener recomendaciones adicionales sobre cuándo usar cada regla, vea Procedimientos recomendados para el uso de cadenas en .NET Framework.

Normalmente, no se llama de cadena de los métodos de comparación como Compare directamente para determinar el criterio de ordenación de cadenas. En su lugar, se denominan métodos de comparación de métodos de ordenación como Array.Sort o List<T>.Sort. En el ejemplo siguiente se realiza cuatro operaciones de ordenación diferentes (mediante la referencia cultural actual, utilizando la referencia cultural de ordenación de palabras, ordenación ordinal y ordenación de cadena usando la referencia cultural de ordenación de palabras) sin llamar explícitamente a un método de comparación de cadenas, aunque especifique el tipo de comparación que se va a utilizar. Tenga en cuenta que cada tipo de ordenación genera una única ordenación de cadenas de 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 usa claves de ordenación para admitir la comparación de cadenas 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, que 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 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 ordenación o una comparació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 cadenas, métodos de ordenación como Array.Sort(Array) realizar una ordenación de la referencia cultural, 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, debe utilizar 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 ordinales o de la referencia cultural. En el ejemplo siguiente se ilustra las diferencias entre la comparación ordinal y dependiente de la referencia cultural mediante el IndexOf método. Una búsqueda de la referencia cultural en la que la referencia cultural actual es inglés (Estados Unidos) considera la subcadena "oe" para que coincida con la ligadura "œ". Dado un guion (00AD) es un carácter de ancho cero, la búsqueda trata guion como equivalente a Empty y se encuentra una coincidencia al principio de la cadena. Por otro lado, una búsqueda ordinal, no encuentra a una coincidencia en cualquier caso.

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 referencia cultural o comparaciones de cadenas ordinales para determinar si un carácter o subcadena se encuentra en una cadena especificada.

Los métodos de búsqueda en el String clase que buscar un carácter individual, como elIndexOf método o un conjunto de caracteres, como el IndexOfAny método, realizan una búsqueda ordinal. Para realizar una búsqueda 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 la 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 al buscar un carácter individual. La ligadura "æ" (00E6) se encuentra en la cadena "aérea" al utilizar 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 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.

Utilice 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 dependiente de la referencia cultural. En cambio, llame a la String.Equals método para comprobar la igualdad. Porque la prueba de igualdad compara los 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, normalmente suele ser una operación ordinal.

System_CAPS_warningAdvertencia

Es posible comprobar la igualdad llamando 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, debe llamar a una de las sobrecargas de la String.Equals (método). La sobrecarga preferida para llamar a es la instancia Equals(String, StringComparison) método o estático Equals(String, String, StringComparison) método, porque ambos métodos incluyen un System.StringComparison parámetro que especifica explícitamente el tipo de comparación.

En el ejemplo siguiente se muestra el peligro de realizar una comparación dependiente de la referencia cultural son iguales cuando un ordinal se debería utilizar en su lugar. En este caso, la intención del código es prohibir el acceso al sistema de archivos de direcciones URL que comienzan por "FILE://" o "file://" al realizar 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 empieza por "file://", no la comparación de igualdad, porque el turco equivalente en mayúsculas de minúsculas "i" es "İ" en lugar de "I". Como resultado, inadvertidamente 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+10000 0103 U+10000 0301

  • U+10000 0061 U+10000 0306 U+10000 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 sigue reglas diferentes. .NET Framework admite formas de normalización Unicode C, D, KC y KD. Cuando se han normalizado las cadenas de 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 correspondiente Char objetos de cada cadena. LaString clase incluye una serie de métodos que pueden 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 bien puede llamar a la String.IsNormalized(NormalizationForm) método para determinar si una cadena está normalizada en una forma de normalización especificada. También puede llamar a la String.Normalize() puede llamar al método para convertir una cadena en forma de normalización C, o bien el 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 comparar cadenas, vea la Normalize() y Normalize(NormalizationForm) métodos.

El ejemplo siguiente 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 difiere de las dos cadenas. A continuación, convierte cada cadena en 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 de unicode.org.

La String clase proporciona miembros para comparar cadenas, probando las cadenas son iguales, buscar caracteres o subcadenas de una cadena, modificar una cadena, extraer subcadenas de una cadena, combinar cadenas, aplicar 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 el siguiente Stringmétodos:

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

  • CompareOrdinal Devuelve un entero que indica la relación de una cadena con otra cadena basándose en una comparación de sus puntos de código.

  • CompareTo Devuelve 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 el 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 estático Equals(String, StringComparison) sobrecargas permiten especificar si la comparación es ordinal o de la referencia cultural, y si el caso se considera u omite. Es ordinal la mayoría de las pruebas de igualdad y comparaciones de igualdad que determinan el acceso a un recurso del sistema (por ejemplo, un objeto de sistema de archivos) deben ser siempre 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 siguientes métodos que parecen modificar el valor de una cadena:

  • Insert Inserta una cadena en el actual String instancia.

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

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

  • Remove elimina una subcadena del actual String instancia.

  • Replace reemplaza una subcadena por otra subcadena actual String instancia.

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

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

  • Trim Quita todas las apariciones de un carácter del principio y del final de una cadena.

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

  • TrimStart Quita 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. 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 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 los delimitadores son adyacentes) se incluyen entre las cadenas devueltas.

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

  • Concat combina una o varias subcadenas en una sola cadena.

  • Join Concatena una o varias subcadenas en un único elemento y 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 Alinear a la izquierda una subcadena en un campo dentro de una cadena mayor.

Para obtener información detallada sobre el formato de las operaciones y ejemplos, vea el Format Resumen de sobrecarga.

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

  • Clone Devuelve una referencia a un archivo String objeto.

  • Copy crea una copia de una cadena existente.

  • CopyTo copia una parte de una cadena en una matriz de caracteres.

En Unicode, un carácter 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, consulte el Normalizació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: