Aplicativos do Windows
Recolher sumário
Expandir sumário
Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

Classe String

 

Representa o texto como uma sequência de unidades de código UTF-16.

Para procurar o código-fonte do .NET Framework para este tipo, consulte o Reference Source.

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


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

NomeDescrição
System_CAPS_pubmethodString(Char*)

Inicializa uma nova instância da classe String para o valor indicado por um ponteiro especificado para uma matriz de caracteres Unicode.

System_CAPS_pubmethodString(Char*, Int32, Int32)

Inicializa uma nova instância da classe String para o valor indicado por um ponteiro especificado para uma matriz de caracteres Unicode, uma posição de caractere inicial dentro dessa matriz e um tamanho.

System_CAPS_pubmethodString(Char, Int32)

Inicializa uma nova instância da classe String para o valor indicado por um caractere Unicode repetido um número de vezes especificado.

System_CAPS_pubmethodString(Char[])

Inicializa uma nova instância de String classe para o valor indicado por uma matriz de caracteres Unicode.

System_CAPS_pubmethodString(Char[], Int32, Int32)

Inicializa uma nova instância da classe String para o valor indicado por uma matriz de caracteres Unicode, uma posição de caractere inicial dentro dessa matriz e um comprimento.

System_CAPS_pubmethodString(SByte*)

Inicializa uma nova instância da classe String para o valor indicado por um ponteiro para uma matriz de inteiros de 8 bits com sinal.

System_CAPS_pubmethodString(SByte*, Int32, Int32)

Inicializa uma nova instância da classe String para o valor indicado por um ponteiro especificado para uma matriz de inteiros com sinal de 8 bits, uma posição inicial na matriz e um comprimento.

System_CAPS_pubmethodString(SByte*, Int32, Int32, Encoding)

Inicializa uma nova instância da classe String para o valor indicado por um ponteiro especificado para uma matriz de inteiros com sinal de 8 bits, uma posição inicial na matriz, um comprimento e um objeto Encoding.

NomeDescrição
System_CAPS_pubpropertyChars[Int32]

Obtém o objeto Char em uma posição especificada no atual objeto String.

System_CAPS_pubpropertyLength

Obtém o número de caracteres no objeto String atual.

NomeDescrição
System_CAPS_pubmethodClone()

Retorna uma referência a essa instância de String.

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

Compara subcadeias de dois objetos String especificados e retorna um inteiro que indica sua posição relativa na ordem de classificação.

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

Compara as subcadeias de dois objetos String especificados, ignorando ou respeitando as maiúsculas e minúsculas, e retorna um inteiro que indica sua posição relativa na ordem de classificação.

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

Compara subcadeias de caracteres de dois objetos String especificados, ignorando ou respeitando as maiúsculas e minúsculas e usando informações específicas da cultura para influenciar a comparação e retorna um inteiro que indica sua posição relativa na ordem de classificação.

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

Compara duas subcadeias de caracteres String especificadas usando as opções de comparação especificadas e as informações específicas da cultura para influenciar a comparação e retorna um inteiro que indica o relacionamento entre as duas subcadeias de caracteres na ordem de classificação.

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

Compara as subcadeias de caracteres de dois especificado String objetos usando as regras especificadas e retorna um inteiro que indica sua posição relativa na ordem de classificação.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String)

Compara dois objetos String especificados e retorna um inteiro que indica sua posição relativa na ordem de classificação.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, Boolean)

Compara dois objetos String especificados, ignorando ou respeitando as maiúsculas e minúsculas, e retorna um inteiro que indica sua posição relativa na ordem de classificação.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, Boolean, CultureInfo)

Compara dois objetos String especificados, ignorando ou respeitando as maiúsculas e minúsculas, bem como usando informações culturais específicas para influenciar a comparação e retorna um inteiro que indica sua posição relativa na ordem de classificação.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, CultureInfo, CompareOptions)

Compara dois objetos String especificados usando as opções de comparação especificadas e as informações específicas da cultura para influenciar a comparação e retorna um inteiro que indica o relacionamento entre as duas cadeias de caracteres na ordem de classificação.

System_CAPS_pubmethodSystem_CAPS_staticCompare(String, String, StringComparison)

Compara dois objetos String especificados usando as regras especificadas e retorna um inteiro que indica sua posição relativa na ordem de classificação.

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

Compara subcadeias de caracteres de dois objetos String especificados avaliando os valores numéricos dos objetos Char correspondentes em cada subcadeia de caracteres.

System_CAPS_pubmethodSystem_CAPS_staticCompareOrdinal(String, String)

Compara dois objetos String especificados avaliando os valores numéricos dos objetos Char correspondentes em cada cadeia de caracteres.

System_CAPS_pubmethodCompareTo(Object)

Compara essa instância com um Object especificado e indica se esta instância precede, segue ou aparece na mesma posição na ordem de classificação, conforme o Object especificado.

System_CAPS_pubmethodCompareTo(String)

Compara essa instância com um objeto String especificado e indica se esta instância precede, segue ou aparece na mesma posição na ordem de classificação, conforme a cadeia de caracteres especificada.

System_CAPS_pubmethodSystem_CAPS_staticConcat(IEnumerable<String>)

Concatena os membros de uma coleção de IEnumerable<T> construída do tipo String.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object)

Cria a representação em String de um objeto especificado.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object)

Concatena as representações em String de dois objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object, Object)

Concatena as representações em String de três objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object, Object, Object, Object)

Concatena as representações em String de quatro objetos especificados e todos os objetos especificados em uma lista de parâmetros opcionais de comprimento variável.

System_CAPS_pubmethodSystem_CAPS_staticConcat(Object[])

Concatena as representações de cadeia de caracteres dos elementos em uma matriz Object especificada.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String)

Concatena duas instâncias especificadas de String.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String, String)

Concatena três instâncias especificadas de String.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String, String, String, String)

Concatena quatro instâncias especificadas de String.

System_CAPS_pubmethodSystem_CAPS_staticConcat(String[])

Concatena os elementos de uma matriz String especificada.

System_CAPS_pubmethodSystem_CAPS_staticConcat<T>(IEnumerable<T>)

Concatena os membros de uma implementação IEnumerable<T>.

System_CAPS_pubmethodContains(String)

Retorna um valor que indica se uma subcadeia especificada ocorre nesta cadeia de caracteres.

System_CAPS_pubmethodSystem_CAPS_staticCopy(String)

Cria uma nova instância de String com o mesmo valor que um String especificado.

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

Copia um número especificado de caracteres de uma posição especificada nesta instância para uma posição especificada em um array de caracteres Unicode.

System_CAPS_pubmethodEndsWith(String)

Determina se o final desta instância de String corresponde à String especificada.

System_CAPS_pubmethodEndsWith(String, Boolean, CultureInfo)

Determina se o final desta instância de String corresponde à String especificada quando comparado com a cultura especificada.

System_CAPS_pubmethodEndsWith(String, StringComparison)

Determina se o final desta instância de String corresponde à String especificada quando comparado com a opção de comparação especificado.

System_CAPS_pubmethodEquals(Object)

Determina se essa instância e um objeto especificado, que também deve ser um objeto String, têm o mesmo valor.(Substitui o Object.Equals(Object).)

System_CAPS_pubmethodEquals(String)

Determina se essa instância e outro objeto String especificado têm o mesmo valor.

System_CAPS_pubmethodSystem_CAPS_staticEquals(String, String)

Determina se dois objetos String especificados têm o mesmo valor.

System_CAPS_pubmethodSystem_CAPS_staticEquals(String, String, StringComparison)

Determina se dois objetos String especificados têm o mesmo valor. Um parâmetro especifica a cultura, as maiúsculas e minúsculas e as regras de classificação usadas na comparação.

System_CAPS_pubmethodEquals(String, StringComparison)

Determina se essa cadeia de caracteres e um objeto String especificado têm o mesmo valor. Um parâmetro especifica a cultura, as maiúsculas e minúsculas e as regras de classificação usadas na comparação.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object)

Substitui o item ou itens de formato em uma cadeia de caracteres especificada pela representação de cadeia de caracteres do objeto correspondente. Um parâmetro fornece informações de formatação específicas da cultura.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object, Object)

Substitui os itens de formato em uma String especificada com a representação de String de dois objetos especificados. Um parâmetro fornece informações de formatação específicas da cultura.

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

Substitui os itens de formato em uma String especificada com a representação de String de três objetos especificados. Um parâmetro fornece informações de formatação específicas da cultura.

System_CAPS_pubmethodSystem_CAPS_staticFormat(IFormatProvider, String, Object[])

Substitui os itens de formato em uma cadeia de caracteres especificada pelas representações de cadeia de caracteres de objetos correspondentes em uma matriz especificada. Um parâmetro fornece informações de formatação específicas da cultura.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object)

Substitui um ou mais itens de formato em uma String especificada com a representação de String de um objeto especificado.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object, Object)

Substitui os itens de formato em uma String especificada com a representação de String de dois objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object, Object, Object)

Substitui os itens de formato em uma String especificada com a representação de String de três objetos especificados.

System_CAPS_pubmethodSystem_CAPS_staticFormat(String, Object[])

Substitui o item de formato em uma String especificada com a representação de String de um objeto correspondente em um array especificado.

System_CAPS_pubmethodGetEnumerator()

Recupera um objeto que pode iterar por meio de caracteres individuais nesta String.

System_CAPS_pubmethodGetHashCode()

Retorna o código hash para essa String.(Substitui o Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodGetTypeCode()

Retorna o TypeCode para a classe String.

System_CAPS_pubmethodIndexOf(Char)

Relata o índice baseado em zero da primeira ocorrência do caractere Unicode especificado na cadeia de caracteres.

System_CAPS_pubmethodIndexOf(Char, Int32)

Relata o índice baseado em zero da primeira ocorrência do caractere Unicode especificado na cadeia de caracteres. A pesquisa é iniciada em uma posição de caractere especificada.

System_CAPS_pubmethodIndexOf(Char, Int32, Int32)

Relata o índice baseado em zero da primeira ocorrência do caractere especificado nessa instância. A pesquisa é iniciada em uma posição de caractere especificada e examina um número especificado de posições de caracteres.

System_CAPS_pubmethodIndexOf(String)

Relata o índice baseado em zero da primeira ocorrência da cadeia de caracteres especificada nessa instância.

System_CAPS_pubmethodIndexOf(String, Int32)

Relata o índice baseado em zero da primeira ocorrência da cadeia de caracteres especificada nessa instância. A pesquisa é iniciada em uma posição de caractere especificada.

System_CAPS_pubmethodIndexOf(String, Int32, Int32)

Relata o índice baseado em zero da primeira ocorrência da cadeia de caracteres especificada nessa instância. A pesquisa é iniciada em uma posição de caractere especificada e examina um número especificado de posições de caracteres.

System_CAPS_pubmethodIndexOf(String, Int32, Int32, StringComparison)

Relata o índice baseado em zero da primeira ocorrência da cadeia de caracteres especificada no objeto String atual. Parâmetros especificam a posição inicial de pesquisa na cadeia de caracteres de atual, o número de caracteres na cadeia de caracteres atual para pesquisar e o tipo de pesquisa a ser usado para a cadeia de caracteres especificada.

System_CAPS_pubmethodIndexOf(String, Int32, StringComparison)

Relata o índice baseado em zero da primeira ocorrência da cadeia de caracteres especificada no objeto String atual. Os parâmetros especificam a posição de pesquisa inicial na cadeia de caracteres atual e o tipo de pesquisa a ser usado para a cadeia de caracteres especificada.

System_CAPS_pubmethodIndexOf(String, StringComparison)

Relata o índice baseado em zero da primeira ocorrência da cadeia de caracteres especificada no objeto String atual. Um parâmetro especifica o tipo de pesquisa a ser usado para a cadeia de caracteres especificada.

System_CAPS_pubmethodIndexOfAny(Char[])

Relata o índice baseado em zero da primeira ocorrência nessa instância de qualquer caractere em uma matriz especificada de caracteres Unicode.

System_CAPS_pubmethodIndexOfAny(Char[], Int32)

Relata o índice baseado em zero da primeira ocorrência nessa instância de qualquer caractere em uma matriz especificada de caracteres Unicode. A pesquisa é iniciada em uma posição de caractere especificada.

System_CAPS_pubmethodIndexOfAny(Char[], Int32, Int32)

Relata o índice baseado em zero da primeira ocorrência nessa instância de qualquer caractere em uma matriz especificada de caracteres Unicode. A pesquisa é iniciada em uma posição de caractere especificada e examina um número especificado de posições de caracteres.

System_CAPS_pubmethodInsert(Int32, String)

Retorna uma nova cadeia de caracteres na qual uma cadeia de caracteres especificada é inserida em uma posição de índice especificada nesta instância.

System_CAPS_pubmethodSystem_CAPS_staticIntern(String)

Recupera a referência do sistema para o String especificado.

System_CAPS_pubmethodSystem_CAPS_staticIsInterned(String)

Recupera uma referência a um String especificado.

System_CAPS_pubmethodIsNormalized()

Indica se esta String está no formato C de normalização Unicode.

System_CAPS_pubmethodIsNormalized(NormalizationForm)

Indica se esta String está no formato de normalização Unicode especificado.

System_CAPS_pubmethodSystem_CAPS_staticIsNullOrEmpty(String)

Indica se a cadeia de caracteres especificada é null ou uma cadeia de caracteres Empty.

System_CAPS_pubmethodSystem_CAPS_staticIsNullOrWhiteSpace(String)

Indica se uma cadeia de caracteres especificada é null, vazia ou consiste apenas em caracteres de espaço em branco.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, IEnumerable<String>)

Concatena os membros de uma coleção de IEnumerable<T> construída do tipo String, usando o separador especificado entre cada membro.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, Object[])

Concatena os elementos de um array de objetos, usando o separador especificado entre cada elemento.

System_CAPS_pubmethodSystem_CAPS_staticJoin(String, String[])

Concatena todos os elementos de uma matriz de cadeia de caracteres usando o separador especificado entre cada elemento.

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

Concatena os elementos especificados de uma matriz de cadeia de caracteres usando o separador especificado entre cada elemento.

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

Concatena os membros de uma coleção, usando o separador especificado entre cada membro.

System_CAPS_pubmethodLastIndexOf(Char)

Relata a posição de índice com base em zero da última ocorrência de um caractere Unicode especificado nesta instância.

System_CAPS_pubmethodLastIndexOf(Char, Int32)

Relata a posição de índice com base em zero da última ocorrência de um caractere Unicode especificado nesta instância. A pesquisa começa em uma posição de caractere especificada e continua até o início da cadeia de caracteres.

System_CAPS_pubmethodLastIndexOf(Char, Int32, Int32)

Relata a posição de índice que começa com zero da última ocorrência do caractere Unicode especificado em uma subcadeia de caracteres dentro dessa instância. A pesquisa começa em uma posição de caractere especificada e continua para trás até o início da cadeia de caracteres de um número especificado de posições de caractere.

System_CAPS_pubmethodLastIndexOf(String)

Relata a posição de índice com base em zero da última ocorrência de uma cadeia de caracteres especificada nesta instância.

System_CAPS_pubmethodLastIndexOf(String, Int32)

Relata a posição de índice com base em zero da última ocorrência de uma cadeia de caracteres especificada nesta instância. A pesquisa começa em uma posição de caractere especificada e continua até o início da cadeia de caracteres.

System_CAPS_pubmethodLastIndexOf(String, Int32, Int32)

Relata a posição de índice com base em zero da última ocorrência de uma cadeia de caracteres especificada nesta instância. A pesquisa começa em uma posição de caractere especificada e continua para trás até o início da cadeia de caracteres de um número especificado de posições de caractere.

System_CAPS_pubmethodLastIndexOf(String, Int32, Int32, StringComparison)

Relata a posição de índice com base em zero da última ocorrência de uma cadeia de caracteres especificada nesta instância. A pesquisa começa em uma posição de caractere especificada e continua para trás até o início da cadeia de caracteres de um número especificado de posições de caractere. Um parâmetro especifica o tipo de comparação a ser realizada ao pesquisar a cadeia de caracteres especificada.

System_CAPS_pubmethodLastIndexOf(String, Int32, StringComparison)

Relata o índice com base em zero da última ocorrência de uma cadeia de caracteres especificada dentro do objeto String atual. A pesquisa começa em uma posição de caractere especificada e continua até o início da cadeia de caracteres. Um parâmetro especifica o tipo de comparação a ser realizada ao pesquisar a cadeia de caracteres especificada.

System_CAPS_pubmethodLastIndexOf(String, StringComparison)

Relata o índice com base em zero da última ocorrência de uma cadeia de caracteres especificada dentro do objeto String atual. Um parâmetro especifica o tipo de pesquisa a ser usado para a cadeia de caracteres especificada.

System_CAPS_pubmethodLastIndexOfAny(Char[])

Relata a posição de índice com base em zero da última ocorrência; neste caso, de um ou mais caracteres especificados em uma matriz Unicode.

System_CAPS_pubmethodLastIndexOfAny(Char[], Int32)

Relata a posição de índice com base em zero da última ocorrência; neste caso, de um ou mais caracteres especificados em uma matriz Unicode. A pesquisa começa em uma posição de caractere especificada e continua até o início da cadeia de caracteres.

System_CAPS_pubmethodLastIndexOfAny(Char[], Int32, Int32)

Relata a posição de índice com base em zero da última ocorrência; neste caso, de um ou mais caracteres especificados em uma matriz Unicode. A pesquisa começa em uma posição de caractere especificada e continua para trás até o início da cadeia de caracteres de um número especificado de posições de caractere.

System_CAPS_pubmethodNormalize()

Retorna uma nova String cujo valor textual é o mesmo que esta String, mas cuja representação binária está no formato C de normalização Unicode.

System_CAPS_pubmethodNormalize(NormalizationForm)

Retorna uma nova String cujo valor textual é o mesmo que esta String, mas cuja representação binária está no formato de normalização Unicode especificado.

System_CAPS_pubmethodPadLeft(Int32)

Retorna uma nova String que alinha à direita os caracteres nesta instância, preenchendo-a com espaços à esquerda, a fim de que a String atinja um comprimento total especificado.

System_CAPS_pubmethodPadLeft(Int32, Char)

Retorna uma nova String que alinha à direita os caracteres nesta instância, preenchendo-a com um caractere Unicode especificado à esquerda, a fim de que a String atinja um comprimento total especificado.

System_CAPS_pubmethodPadRight(Int32)

Retorna uma nova seqüência de caracteres que alinha à esquerda os caracteres nesta String, preenchendo-a com espaços à direita, a fim de que a String atinja um comprimento total especificado.

System_CAPS_pubmethodPadRight(Int32, Char)

Retorna uma nova String que alinha à esquerda os caracteres nesta String, preenchendo-a com um caractere Unicode especificado à direita, a fim de que a String atinja um comprimento total especificado.

System_CAPS_pubmethodRemove(Int32)

Retorna uma nova cadeia de caracteres na qual todos os caracteres na instância atual, começando na posição especificada e continuando até a última posição, foram excluídos.

System_CAPS_pubmethodRemove(Int32, Int32)

Retorna uma nova cadeia de caracteres em que um número especificado de caracteres na instância atual que começa na posição especificada foi excluído.

System_CAPS_pubmethodReplace(Char, Char)

Retorna uma nova seqüência na qual todas as ocorrências de um caractere Unicode especificado são substituídos por um outro caractere Unicode especificado.

System_CAPS_pubmethodReplace(String, String)

Retorna uma nova seqüência na qual todas as ocorrências de uma String especificada são substituídas por outra String especificada.

System_CAPS_pubmethodSplit(Char[])

Divide uma cadeia de caracteres em subcadeias de caracteres baseadas nos caracteres de uma matriz.

System_CAPS_pubmethodSplit(Char[], Int32)

Divide uma cadeia de caracteres em um número máximo de subcadeias de caracteres baseadas nos caracteres em uma matriz. Especifique também o número máximo de subcadeias de caracteres a serem retornadas.

System_CAPS_pubmethodSplit(Char[], Int32, StringSplitOptions)

Divide uma cadeia de caracteres em um número máximo de subcadeias de caracteres baseadas nos caracteres em uma matriz.

System_CAPS_pubmethodSplit(Char[], StringSplitOptions)

Divide uma cadeia de caracteres em subcadeias de caracteres baseadas nos caracteres de uma matriz. Especifique se as subcadeias de caracteres incluem elementos de matriz vazia.

System_CAPS_pubmethodSplit(String[], Int32, StringSplitOptions)

Divide uma cadeia de caracteres em um número máximo de subcadeias de caracteres baseadas nas cadeias de caracteres de uma matriz. Especifique se as subcadeias de caracteres incluem elementos de matriz vazia.

System_CAPS_pubmethodSplit(String[], StringSplitOptions)

Divide uma cadeia de caracteres em subcadeias de caracteres com base nas cadeias de caracteres em uma matriz. Especifique se as subcadeias de caracteres incluem elementos de matriz vazia.

System_CAPS_pubmethodStartsWith(String)

Determina se o início desta instância de String coincide com a String especificada.

System_CAPS_pubmethodStartsWith(String, Boolean, CultureInfo)

Determina se o início desta instância de String corresponde à String especificada quando comparada com a cultura especificada.

System_CAPS_pubmethodStartsWith(String, StringComparison)

Determina se o início desta instância de String corresponde à String especificada quando comparada com a opção de comparação especificada.

System_CAPS_pubmethodSubstring(Int32)

Recupera uma substring desta instância. A subcadeia de caracteres começa em uma posição de caractere especificado e continua até o final da cadeia de caracteres.

System_CAPS_pubmethodSubstring(Int32, Int32)

Recupera uma substring desta instância. A subcadeia de caracteres começa em uma posição de caractere especificado e tem um comprimento especificado.

System_CAPS_pubmethodToCharArray()

Copia os caracteres nesta instância para um array de caracteres Unicode.

System_CAPS_pubmethodToCharArray(Int32, Int32)

Copia os caracteres em uma substring especificada nesta instância para um array de caracteres Unicode.

System_CAPS_pubmethodToLower()

Retorna uma cópia desta string convertida para caracteres em caixa baixa.

System_CAPS_pubmethodToLower(CultureInfo)

Retorna uma cópia desta string convertida para caracteres em caixa baixa, usando as regras de caixa baixa / alta da cultura especificada.

System_CAPS_pubmethodToLowerInvariant()

Retorna uma cópia deste objeto String convertido em minúsculas usando as regras de maiúsculas e minúsculas da cultura invariável.

System_CAPS_pubmethodToString()

Retorna esta instância do String; nenhuma conversão em si é executada.(Substitui o Object.ToString().)

System_CAPS_pubmethodToString(IFormatProvider)

Retorna esta instância do String; nenhuma conversão em si é executada.

System_CAPS_pubmethodToUpper()

Retorna uma cópia desta String convertida para caracteres em caixa alta.

System_CAPS_pubmethodToUpper(CultureInfo)

Retorna uma cópia desta String convertida para caracteres em caixa alta, usando as regras de caixa baixa / alta da cultura especificada.

System_CAPS_pubmethodToUpperInvariant()

Retorna uma cópia deste objeto String convertido em maiúsculas usando as regras de maiúsculas e minúsculas da cultura invariável.

System_CAPS_pubmethodTrim()

Remove todos os caracteres de espaço em branco à esquerda e à direita do objeto String atual.

System_CAPS_pubmethodTrim(Char[])

Remove todas as ocorrências à esquerda e à direita de um conjunto de caracteres especificados em uma matriz do atual objeto String.

System_CAPS_pubmethodTrimEnd(Char[])

Remove todas as ocorrências à direita de um conjunto de caracteres especificados em uma matriz do atual objeto String.

System_CAPS_pubmethodTrimStart(Char[])

Remove todas as ocorrências à esquerda de um conjunto de caracteres especificados em uma matriz do atual objeto String.

NomeDescrição
System_CAPS_pubfieldSystem_CAPS_staticEmpty

Representa a cadeia de caracteres vazia. Este campo é somente leitura.

NomeDescrição
System_CAPS_puboperatorSystem_CAPS_staticEquality(String, String)

Determina se duas Strings especificadas têm o mesmo valor.

System_CAPS_puboperatorSystem_CAPS_staticInequality(String, String)

Determina se duas Strings especificadas têm valores diferentes.

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable<Char>.GetEnumerator()

Retorna um enumerador que itera pelo objeto String atual.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Retorna um enumerador que itera atual String objeto.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToBoolean.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToByte.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToChar.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToDateTime.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToDecimal.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToDouble.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToInt16.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToInt32.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToInt64.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToSByte.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToSingle.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToType.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToUInt16.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToUInt32.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Para obter uma descrição desse membro, consulte ToUInt64.

NomeDescrição
System_CAPS_pubmethodAggregate<Char>(Func<Char, Char, Char>)

Sobrecarregado. Aplica uma função acumuladora em uma seqüência.(Definido pelo Enumerable.)

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

Sobrecarregado. Aplica uma função acumuladora em uma seqüência. O valor de semente especificado é usado como o valor inicial do acumulador.(Definido pelo Enumerable.)

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

Sobrecarregado. Aplica uma função acumuladora em uma seqüência. O valor de semente especificado é usado como o valor inicial do acumulador e a função especificada é usada para selecionar o valor do resultado.(Definido pelo Enumerable.)

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

Determina se todos os elementos de uma sequência atendem a uma condição.(Definido pelo Enumerable.)

System_CAPS_pubmethodAny<Char>()

Sobrecarregado. Determina se uma sequência contém elementos.(Definido pelo Enumerable.)

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

Sobrecarregado. Determina se algum elemento de uma sequência atende a uma condição.(Definido pelo Enumerable.)

System_CAPS_pubmethodAsEnumerable<Char>()

Retorna a entrada digitada como IEnumerable<T>.(Definido pelo Enumerable.)

System_CAPS_pubmethodAsParallel()

Sobrecarregado. Permite a paralelização de uma consulta. (Definido pelo ParallelEnumerable.)

System_CAPS_pubmethodAsParallel<Char>()

Sobrecarregado. Permite a paralelização de uma consulta. (Definido pelo ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Sobrecarregado. Converte um IEnumerable em um IQueryable.(Definido pelo Queryable.)

System_CAPS_pubmethodAsQueryable<Char>()

Sobrecarregado. Converte um IEnumerable<T> genérico em um IQueryable<T> genérico.(Definido pelo Queryable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Decimal obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Double obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Int32 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Int64 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Decimal que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Double que permitem valor nulo obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de anulável Int32 valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de anulável Int64 valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de anulável Single valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a média de uma sequência de valores Single obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

System_CAPS_pubmethodCast<TResult>()

Converte os elementos de um IEnumerable para o tipo especificado.(Definido pelo Enumerable.)

System_CAPS_pubmethodConcat<Char>(IEnumerable<Char>)

Concatena duas sequências.(Definido pelo Enumerable.)

System_CAPS_pubmethodContains<Char>(Char)

Sobrecarregado. Determina se uma sequência contém um elemento especificado usando o comparador de igualdade padrão.(Definido pelo Enumerable.)

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

Sobrecarregado. Determina se uma sequência contém um elemento especificado usando um IEqualityComparer<T> especificado.(Definido pelo Enumerable.)

System_CAPS_pubmethodCount<Char>()

Sobrecarregado. Retorna o número de elementos em uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna um número que representa quantos elementos na sequência especificada satisfazem uma condição.(Definido pelo Enumerable.)

System_CAPS_pubmethodDefaultIfEmpty<Char>()

Sobrecarregado. Retornará os elementos da sequência especificada ou o valor padrão do parâmetro de tipo em uma coleção de singletons se a sequência estiver vazia.(Definido pelo Enumerable.)

System_CAPS_pubmethodDefaultIfEmpty<Char>(Char)

Sobrecarregado. Retorna os elementos da sequência especificada ou o valor especificado em uma coleção de singletons se a sequência está vazia.(Definido pelo Enumerable.)

System_CAPS_pubmethodDistinct<Char>()

Sobrecarregado. Retorna os elementos distintos de uma sequência usando o comparador de igualdade padrão para comparar valores.(Definido pelo Enumerable.)

System_CAPS_pubmethodDistinct<Char>(IEqualityComparer<Char>)

Sobrecarregado. Retorna os elementos distintos de uma sequência usando um IEqualityComparer<T> especificado para comparar valores.(Definido pelo Enumerable.)

System_CAPS_pubmethodElementAt<Char>(Int32)

Retorna o elemento de um índice especificado em uma sequência.(Definido pelo Enumerable.)

System_CAPS_pubmethodElementAtOrDefault<Char>(Int32)

Retorna o elemento em um índice especificado em uma sequência ou um valor padrão se o índice estiver fora do intervalo.(Definido pelo Enumerable.)

System_CAPS_pubmethodExcept<Char>(IEnumerable<Char>)

Sobrecarregado. Produz a diferença de conjunto de duas sequências usando o comparador de igualdade padrão para comparar os valores.(Definido pelo Enumerable.)

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

Sobrecarregado. Produz a diferença de conjunto de duas sequências usando o IEqualityComparer<T> especificado para comparar os valores.(Definido pelo Enumerable.)

System_CAPS_pubmethodFirst<Char>()

Sobrecarregado. Retorna o primeiro elemento de uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna o primeiro elemento em uma sequência que satisfaz uma condição especificada.(Definido pelo Enumerable.)

System_CAPS_pubmethodFirstOrDefault<Char>()

Sobrecarregado. Retorna o primeiro elemento de uma sequência, ou um valor padrão se a sequência não contiver elementos.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna o primeiro elemento da seqüência que satisfaz uma condição ou um valor padrão se nenhum elemento for encontrado.(Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com uma função de seleção de chave especificada. (Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com a uma função de seleção de chave especificada e compara as chaves usando um comparador especificado. (Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com a uma função de seleção de chave especificada e projeta os elementos para cada grupo usando uma função especificada. (Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com uma função de seleção de chave. As chaves são comparadas usando um comparador e os elementos de cada grupo são projetados usando uma função especificada.(Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com uma função de seleção de chave especificada e cria um valor de resultado de cada grupo e sua chave. (Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com uma função de seleção de chave especificada e cria um valor de resultado de cada grupo e sua chave. As chaves são comparadas usando um comparador especificado.(Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com uma função de seleção de chave especificada e cria um valor de resultado de cada grupo e sua chave. Os elementos de cada grupo são projetados usando uma função especificada.(Definido pelo Enumerable.)

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

Sobrecarregado. Agrupa os elementos de uma seqüência de acordo com uma função de seleção de chave especificada e cria um valor de resultado de cada grupo e sua chave. Os valores da chave são comparados usando um comparador especificado e os elementos de cada grupo são projetados usando uma função especificada.(Definido pelo Enumerable.)

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

Sobrecarregado. Correlaciona os elementos de duas sequências com base na igualdade de chaves e agrupa os resultados. O comparador de igualdade padrão é usado para comparar chaves.(Definido pelo Enumerable.)

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

Sobrecarregado. Correlaciona os elementos de duas sequências com base na igualdade de chaves e agrupa os resultados. Um IEqualityComparer<T> especificado é usado para comparar chaves.(Definido pelo Enumerable.)

System_CAPS_pubmethodIntersect<Char>(IEnumerable<Char>)

Sobrecarregado. Produz a interseção de duas seqüências usando o comparador de igualdade padrão para comparar valores. (Definido pelo Enumerable.)

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

Sobrecarregado. Produz a interseção de conjunto de duas sequências usando o IEqualityComparer<T> especificado para comparar os valores.(Definido pelo Enumerable.)

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

Sobrecarregado. Correlaciona os elementos de duas sequências com base em chaves coincidentes. O comparador de igualdade padrão é usado para comparar chaves.(Definido pelo Enumerable.)

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

Sobrecarregado. Correlaciona os elementos de duas sequências com base em chaves coincidentes. Um IEqualityComparer<T> especificado é usado para comparar chaves.(Definido pelo Enumerable.)

System_CAPS_pubmethodLast<Char>()

Sobrecarregado. Retorna o último elemento de uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna o último elemento de uma sequência que satisfaz uma condição especificada.(Definido pelo Enumerable.)

System_CAPS_pubmethodLastOrDefault<Char>()

Sobrecarregado. Retorna o último elemento de uma sequência ou um valor padrão se a sequência não contém elementos.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna o último elemento de uma seqüência que satisfaz uma condição ou um valor padrão se nenhum elemento for encontrado. (Definido pelo Enumerable.)

System_CAPS_pubmethodLongCount<Char>()

Sobrecarregado. Retorna um Int64 que representa o número total de elementos em uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna um Int64 que representa quantos elementos na sequência atendem a uma condição.(Definido pelo Enumerable.)

System_CAPS_pubmethodMax<Char>()

Sobrecarregado. Retorna o valor máximo em uma sequência genérica.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal máximo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Double máximo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 máximo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 máximo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal máximo que permite valor nulo.(Definido pelo Enumerable.)

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

Sobrecarregado. Chama uma função de transformação em cada elemento de uma sequência e retorna o valor máximo anulável Double valor.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 máximo que permite valor nulo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 máximo que permite valor nulo.(Definido pelo Enumerable.)

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

Sobrecarregado. Chama uma função de transformação em cada elemento de uma sequência e retorna o valor máximo anulável Single valor.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Single máximo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência genérica e retorna o maior valor resultante.(Definido pelo Enumerable.)

System_CAPS_pubmethodMin<Char>()

Sobrecarregado. Retorna o valor mínimo em uma sequência genérica.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Decimal mínimo.(Definido pelo Enumerable.)

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

Sobrecarregado. Chama uma função de transformação em cada elemento de uma sequência e retorna o mínimo Double valor.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 mínimo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int64 mínimo.(Definido pelo Enumerable.)

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

Sobrecarregado. Chama uma função de transformação em cada elemento de uma sequência e retorna o mínimo anulável Decimal valor.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Double mínimo que permite valor nulo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Int32 mínimo que permite valor nulo.(Definido pelo Enumerable.)

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

Sobrecarregado. Chama uma função de transformação em cada elemento de uma sequência e retorna o mínimo anulável Int64 valor.(Definido pelo Enumerable.)

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

Sobrecarregado. Chama uma função de transformação em cada elemento de uma sequência e retorna o mínimo anulável Single valor.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência e retorna o valor Single mínimo.(Definido pelo Enumerable.)

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

Sobrecarregado. Invoca uma função de transformação em cada elemento de uma sequência genérica e retorna o menor valor resultante.(Definido pelo Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtra os elementos de um IEnumerable com base em um tipo especificado.(Definido pelo Enumerable.)

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

Sobrecarregado. Classifica os elementos de uma sequência em ordem crescente de acordo com uma chave.(Definido pelo Enumerable.)

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

Sobrecarregado. Classifica os elementos de uma sequência em ordem crescente usando um comparador especificado.(Definido pelo Enumerable.)

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

Sobrecarregado. Classifica os elementos de uma sequência em ordem decrescente de acordo com uma chave.(Definido pelo Enumerable.)

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

Sobrecarregado. Classifica os elementos de uma sequência em ordem decrescente usando um comparador especificado.(Definido pelo Enumerable.)

System_CAPS_pubmethodReverse<Char>()

Inverte a ordem dos elementos em uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Projeta cada elemento de uma seqüência em um novo formulário.(Definido pelo Enumerable.)

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

Sobrecarregado. Projeta cada elemento de uma seqüência em um novo formulário incorporando o índice do elemento.(Definido pelo Enumerable.)

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

Sobrecarregado. Projeta cada elemento de uma sequência em um IEnumerable<T> e nivela as sequências resultantes em uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Projeta cada elemento de uma sequência em um IEnumerable<T> e nivela as sequências resultantes em uma sequência. O índice de cada elemento de origem é usado no formulário projetado desse elemento.(Definido pelo Enumerable.)

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

Sobrecarregado. Projeta cada elemento de uma sequência em um IEnumerable<T>, mescla as sequências resultantes em uma sequência e chama uma função de seletor de resultado em cada elemento contido nele.(Definido pelo Enumerable.)

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

Sobrecarregado. Projeta cada elemento de uma sequência em um IEnumerable<T>, mescla as sequências resultantes em uma sequência e chama uma função de seletor de resultado em cada elemento contido nele. O índice de cada elemento de origem é usado no formulário projetado intermediário do elemento.(Definido pelo Enumerable.)

System_CAPS_pubmethodSequenceEqual<Char>(IEnumerable<Char>)

Sobrecarregado. Determina se duas sequências são iguais comparando os elementos usando o comparador de igualdade padrão para o tipo.(Definido pelo Enumerable.)

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

Sobrecarregado. Determina se duas sequências são iguais, comparando seus elementos usando um IEqualityComparer<T> especificado.(Definido pelo Enumerable.)

System_CAPS_pubmethodSingle<Char>()

Sobrecarregado. Retornará o único elemento de uma sequência e lançará uma exceção se não houver exatamente um elemento na sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna um único elemento de uma seqüência que satisfaz uma condição especificada e lança uma exceção se mais de um elemento existe. (Definido pelo Enumerable.)

System_CAPS_pubmethodSingleOrDefault<Char>()

Sobrecarregado. Retorna o único elemento de uma sequência ou um valor padrão se a sequência é vazia; esse método gera uma exceção se há mais de um elemento na sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna o único elemento de uma sequência que satisfaz uma condição especificada ou um valor padrão se esse elemento não existir. Esse método lança uma exceção se mais de um elemento satisfizer a condição.(Definido pelo Enumerable.)

System_CAPS_pubmethodSkip<Char>(Int32)

Ignora um número especificado de elementos em uma sequência e retorna os elementos restantes.(Definido pelo Enumerable.)

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

Sobrecarregado. Ignora elementos em uma sequência, contanto que uma condição especificada seja verdadeira e retorne os elementos restantes.(Definido pelo Enumerable.)

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

Sobrecarregado. Ignora elementos em uma sequência, contanto que uma condição especificada seja verdadeira e retorne os elementos restantes. O índice do elemento é usado na lógica da função de predicado.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de valores Decimal obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de valores Double obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de valores Int32 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de valores Int64 obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de valores Decimal anuláveis obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de anulável Double valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de anulável Int32 valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de anulável Int64 valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de anulável Single valores que são obtidos chamando uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

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

Sobrecarregado. Calcula a soma da sequência de valores Single obtidos pela invocação de uma função de transformação em cada elemento da sequência de entrada.(Definido pelo Enumerable.)

System_CAPS_pubmethodTake<Char>(Int32)

Retorna um número especificado de elementos contíguos do início de uma sequência.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna os elementos de uma sequência contanto que uma condição especificada seja verdadeira.(Definido pelo Enumerable.)

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

Sobrecarregado. Retorna os elementos de uma sequência contanto que uma condição especificada seja verdadeira. O índice do elemento é usado na lógica da função de predicado.(Definido pelo Enumerable.)

System_CAPS_pubmethodToArray<Char>()

Cria uma matriz de um IEnumerable<T>.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Dictionary<TKey, TValue> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Dictionary<TKey, TValue> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada e um comparador de chaves.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Dictionary<TKey, TValue> de um IEnumerable<T>, de acordo com as funções especificadas de seletor de chave e seletor de elemento.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Dictionary<TKey, TValue> de um IEnumerable<T> de acordo com uma função de seletor de chave, um comparador e uma função de seletor de elemento especificados.(Definido pelo Enumerable.)

System_CAPS_pubmethodToList<Char>()

Cria um List<T> de um IEnumerable<T>.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Lookup<TKey, TElement> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Lookup<TKey, TElement> de um IEnumerable<T>, de acordo com uma função de seletor de chave especificada e um comparador de chaves.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Lookup<TKey, TElement> de um IEnumerable<T>, de acordo com as funções especificadas de seletor de chave e seletor de elemento.(Definido pelo Enumerable.)

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

Sobrecarregado. Cria um Lookup<TKey, TElement> de um IEnumerable<T> de acordo com uma função de seletor de chave, um comparador e uma função de seletor de elemento especificados.(Definido pelo Enumerable.)

System_CAPS_pubmethodUnion<Char>(IEnumerable<Char>)

Sobrecarregado. Produz a união de conjunto de duas sequências usando o comparador de igualdade padrão.(Definido pelo Enumerable.)

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

Sobrecarregado. Produz a união de conjunto de duas sequências usando o IEqualityComparer<T> especificado.(Definido pelo Enumerable.)

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

Sobrecarregado. Filtra uma sequência de valores com base em um predicado.(Definido pelo Enumerable.)

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

Sobrecarregado. Filtra uma sequência de valores com base em um predicado. O índice de cada elemento é usado na lógica da função de predicado.(Definido pelo Enumerable.)

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

Aplica uma função especificada para os elementos correspondentes de duas sequências, produzindo uma sequência dos resultados.(Definido pelo Enumerable.)

System_CAPS_noteObservação

Para exibir o código-fonte do .NET Framework para este tipo, consulte o Reference Source. Percorra o código-fonte online, baixe a referência para exibição offline e percorrer as fontes (incluindo atualizações e patches) durante a depuração; see instructions.

Uma cadeia de caracteres é uma coleção sequencial de caracteres que é usada para representar o texto. Um String objeto é uma coleção sequencial de System.Char objetos que representam uma cadeia de caracteres; um System.Char objeto corresponde a uma unidade de código UTF-16. O valor de String objeto é o conteúdo da coleção sequencial de System.Char objetos e que o valor é imutável (ou seja, ele é somente leitura). Para obter mais informações sobre a imutabilidade de cadeias de caracteres, consulte o imutabilidade e a classe StringBuilder seção mais adiante neste tópico. O tamanho máximo de um String objeto na memória é de 2 GB, ou cerca de 1 bilhão de caracteres.

Nesta seção:

Criando uma instância de um objeto String
Objetos Char e caracteres Unicode
Cadeias de caracteres e o padrão Unicode
Cadeias de caracteres e caracteres nulos inseridos
Cadeias de caracteres e índices
Cadeias de caracteres nulas e cadeias de caracteres vazias
Imutabilidade e a classe StringBuilder
Ordinal x operações sensíveis à cultura
Normalização
Operações da cadeia de caracteres por categoria

Você pode instanciar uma String objeto das seguintes maneiras:

  • Atribuindo uma cadeia de caracteres literal a uma String variável. Este é o método mais comumente usado para criar uma cadeia de caracteres. O exemplo a seguir usa a atribuição para criar várias cadeias de caracteres. Observe que em c#, como a barra invertida (\) é um caractere de escape, barras invertidas literal em uma cadeia de caracteres devem ser substituídas ou a cadeia de caracteres inteira deve ser citado @.

    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      
    
  • Chamando um String construtor de classe. O exemplo a seguir cria uma instância cadeias de caracteres chamando vários construtores de classe. Observe que alguns dos construtores de incluem ponteiros para matrizes de caracteres ou matrizes de byte assinado como parâmetros. Visual Basic não dá suporte a chamadas para esses construtores. Para obter informações detalhadas sobre String construtores, consulte o String construtor resumo.

    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  
    
  • Usando o operador de concatenação de cadeia de caracteres (+ em c# e & ou + no Visual Basic) para criar uma única cadeia de caracteres de qualquer combinação de String instâncias e literais de cadeia de caracteres. O exemplo a seguir ilustra o uso do operador de concatenação de cadeia de caracteres.

    string string1 = "Today is " + DateTime.Now.ToString("D") + ".";
    Console.WriteLine(string1);
    
    string string2 = "This is one sentence. " + "This is a second. ";
    string2 += "This is a third sentence.";
    Console.WriteLine(string2);
    // The example displays output like the following:
    //    Today is Tuesday, July 06, 2011.
    //    This is one sentence. This is a second. This is a third sentence.
    
  • Recuperar uma propriedade ou chamando um método que retorna uma cadeia de caracteres. O exemplo a seguir usa os métodos do String classe para extrair uma subcadeia de caracteres de uma cadeia de caracteres maior.

    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
    
  • Chamando um método para converter um valor ou objeto em sua representação de cadeia de caracteres de formatação. O exemplo a seguir usa o formatação composta recurso para inserir a representação de cadeia de caracteres de dois objetos em uma cadeia de caracteres.

    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 caractere em uma cadeia de caracteres é definido por um valor escalar de Unicode, também chamado de um ponto de código Unicode ou o valor ordinal (numérico) do caractere Unicode. Cada ponto de código é codificado usando a codificação UTF-16, e o valor numérico de cada elemento da codificação é representado por um Char objeto.

System_CAPS_noteObservação

Observe que, como um String instância consiste em uma coleção sequencial de unidades de código UTF-16, é possível criar um String objeto que não é uma cadeia de caracteres Unicode bem formada. Por exemplo, é possível criar uma cadeia de caracteres que tem um substituto baixo sem um substituto alto correspondente. Embora alguns métodos, como os métodos de codificação e decodificação de objetos no System.Text namespace, pode executa verificações para garantir que as cadeias de caracteres são formadas, String membros de classe não garante que uma cadeia de caracteres está bem formada.

Um único Char objeto normalmente representa um único ponto de código, ou seja, o valor numérico de Char é igual ao ponto de código. Por exemplo, o ponto de código para o caractere "a" é U + 0061. No entanto, um ponto de código pode exigir mais de um elemento codificado (mais de um Char objeto). O padrão Unicode define dois tipos de caracteres que correspondem a vários Char objetos: graphemes e pontos de código suplementares Unicode que correspondem aos caracteres planos suplementares Unicode.

  • Uma grafemas é representada por um caractere base seguido por um ou mais caracteres de combinação. Por exemplo, o caractere ä é representado por um Char objeto cujo ponto de código é U + 0061 seguido por um Char objeto cujo ponto de código é U + 0308. Esse caractere também pode ser definido por um único Char objeto que tem um ponto de código de U + 00E4. Como mostra o exemplo a seguir, uma comparação de cultura para igualdade indica que essas duas representações são iguais, embora uma comparação ordinal comum não. No entanto, se duas cadeias de caracteres são normalizadas, uma comparação ordinal também indica que eles são iguais. (Para obter mais informações sobre cadeias de caracteres de normalização, consulte o normalização seção.)

    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 (um par substituto) do ponto de código suplementar é representado por um Char objeto cujo ponto de código é um substituto alto seguido por um Char objeto cujo ponto de código é um substituto baixo. As unidades de código do intervalo de substitutos alta de U + D800 a U + DBFF. As unidades de código do intervalo de substitutos baixa de U + DC00 a U + DFFF. Os pares substitutos são usados para representar caracteres de 16 planos suplementares Unicode. O exemplo a seguir cria um caractere substituto e passa para o Char.IsSurrogatePair(Char, Char) método para determinar se ele é um par substituto.

    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 em uma cadeia de caracteres são representados por unidades de código UTF-16 codificado, que correspondem aos Char valores.

Cada caractere em uma cadeia de caracteres tem uma categoria de caractere Unicode associada, que é representada no .NET Framework, o UnicodeCategory enumeração. A categoria de um caractere ou um par substituto pode ser determinada chamando o CharUnicodeInfo.GetUnicodeCategory método.

O .NET Framework mantém sua própria tabela de caracteres e suas categorias correspondentes, que garante que uma versão do .NET Framework em execução em diferentes plataformas retorna informações de categoria de caracteres idênticos. A tabela a seguir lista as versões do .NET Framework e as versões do padrão Unicode no qual as categorias de caracteres se baseiam.

Versão do .NET Framework

Versão do padrão Unicode

.NET Framework 1.1

The Unicode Standard, Version 4.0.0

O .NET Framework 2.0

The Unicode Standard, Version 5.0.0

.NET Framework 3.5

The Unicode Standard, Version 5.0.0

.NET Framework 4

The Unicode Standard, Version 5.0.0

.NET Framework 4.5

The Unicode Standard, Version 6.3.0

.NET Framework 4.5.1

The Unicode Standard, Version 6.3.0

.NET Framework 4.5.2

The Unicode Standard, Version 6.3.0

.NET Framework 4.6

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.1

The Unicode Standard, Version 6.3.0

.NET Framework 4.6.2

The Unicode Standard, Version 8.0.0

Além disso, o .NET Framework oferece suporte à comparação de cadeia de caracteres e classificação com base no padrão Unicode. Em versões do .NET Framework por meio de .NET Framework 4, o .NET Framework mantém sua própria tabela de dados de cadeia de caracteres. Isso também é verdadeiro para versões do .NET Framework a partir de .NET Framework 4.5 em execução no Windows 7. Começando com o .NET Framework 4.5 em execução no Windows 8 e versões posteriores do sistema operacional Windows, os delegados do tempo de execução de cadeia de caracteres de comparação e classificação de operações para o sistema operacional. A tabela a seguir lista as versões do .NET Framework e as versões do padrão Unicode em caracteres de comparação e ordenação se baseiam.

Versão do .NET Framework

Versão do padrão Unicode

.NET Framework 1.1

The Unicode Standard, Version 4.0.0

O .NET Framework 2.0

The Unicode Standard, Version 5.0.0

.NET Framework 3.5

The Unicode Standard, Version 5.0.0

.NET Framework 4

The Unicode Standard, Version 5.0.0

.NET Framework 4.5e posterior no Windows 7

The Unicode Standard, Version 5.0.0

.NET Framework 4.5e posterior no Windows 8 e sistemas operacionais Windows posteriores

The Unicode Standard, Version 6.3.0

No .NET Framework, um String objeto pode incluir caracteres nulos inseridos, que são contados como parte do comprimento da cadeia de caracteres. No entanto, em alguns idiomas, como C e C++, um caractere nulo indica o final de uma cadeia de caracteres; ele não é considerado parte da cadeia de caracteres e não é contabilizado como parte do comprimento da cadeia de caracteres. Isso significa que as seguintes suposições comuns que os programadores de C e C++ ou bibliotecas escritas em C ou C++ podem fazer sobre cadeias de caracteres não são necessariamente válidas quando aplicado a String objetos:

  • O valor retornado pelo strlen ou wcslen funções não é necessariamente igual String.Length.

  • A cadeia de caracteres criada pelo strcpy_s ou wcscpy_s funções não é necessariamente idêntica à cadeia de caracteres criada pelo String.Copy método.

Você deve garantir que código C e C++ nativo que instancia String objetos e o código que é passado String objetos por meio da plataforma invocar, não presuma que um caractere nulo inserido marca o fim da cadeia de caracteres.

Caracteres nulos inseridos em uma cadeia de caracteres também são tratados diferentemente quando uma cadeia de caracteres é classificada (ou comparada) e quando uma cadeia de caracteres é pesquisada. Caracteres nulos são ignorados ao executar comparações sensíveis à cultura entre duas cadeias de caracteres, inclusive comparações usando a cultura invariável. Elas são consideradas apenas para comparações ordinal ordinal ou maiusculas de minúsculas. Por outro lado, caracteres nulos inseridos sempre são considerados ao procurar uma cadeia de caracteres com métodos como Contains, StartsWith, e IndexOf.

Um índice é a posição de um Char objeto (e não um caractere Unicode) em um String. Um índice é um número não negativo, com base em zero que inicia na primeira posição na cadeia de caracteres, que é a posição do índice de zero. Um número de métodos de pesquisa, como IndexOf e LastIndexOf, o índice de um caractere de retorno ou subcadeia de caracteres na instância de cadeia de caracteres.

O Chars propriedade permite que você acesse individuais Char objetos por sua posição de índice na cadeia de caracteres. Porque o Chars é a propriedade padrão (no Visual Basic) ou o indexador (em c#), você pode acessar o indivíduo Char objetos em uma cadeia de caracteres usando código como o seguinte. Esse código procura por espaço em branco ou caracteres de pontuação em uma cadeia de caracteres para determinar quantas palavras que contém a cadeia de caracteres.

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 o String classe implementa o IEnumerable interface, você também pode percorrer o Char objetos em uma cadeia de caracteres usando um foreach construção, como mostra o exemplo a seguir.

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 consecutivos de índice podem não corresponder aos caracteres Unicode consecutivos, como um caractere pode ser codificado em Unicode como mais de um Char objeto. Em particular, uma cadeia de caracteres pode conter caracteres de várias unidades de texto que são formadas por um caractere base seguido por um ou mais caracteres de combinação ou pares substitutos. Para trabalhar com caracteres Unicode em vez de Char objetos, use o System.Globalization.StringInfo e TextElementEnumerator classes. O exemplo a seguir ilustra a diferença entre o código que funciona com Char objetos e o código que funciona com caracteres Unicode. Ele compara o número de caracteres ou elementos de texto em cada palavra da frase. A cadeia de caracteres inclui duas sequências de um caractere base seguido por um caractere de combinação.

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 exemplo funciona com elementos de texto usando o StringInfo.GetTextElementEnumerator método e o TextElementEnumerator classe para enumerar todos os elementos de texto em uma cadeia de caracteres. Você também pode recuperar uma matriz que contém o índice inicial de cada elemento de texto chamando o StringInfo.ParseCombiningCharacters método.

Para obter mais informações sobre como trabalhar com unidades de texto em vez de um indivíduo Char valores, consulte o StringInfo classe.

Uma cadeia de caracteres que foi declarada mas não foi atribuída um valor é null. Tentativa de chamar métodos em cadeia de caracteres gera um NullReferenceException. Uma cadeia de caracteres nula é diferente de uma cadeia de caracteres vazia, o que é uma cadeia de caracteres cujo valor é "" ou String.Empty. Em alguns casos, passando uma cadeia de caracteres nula ou uma cadeia de caracteres vazia como um argumento em uma chamada de método lançará uma exceção. Por exemplo, passar uma cadeia de caracteres nula para o Int32.Parse método lança um ArgumentNullExceptione passar uma cadeia de caracteres vazia lança um FormatException. Em outros casos, um argumento de método pode ser uma cadeia de caracteres nula ou uma cadeia de caracteres vazia. Por exemplo, se você estiver fornecendo um IFormattable implementação de uma classe, que você deseja igualar uma cadeia de caracteres nula e uma cadeia de caracteres vazia com o especificador de formato geral ("G").

O String classe inclui os seguintes métodos de dois conveniência que permitem testar se é uma cadeia de caracteres null ou vazio:

  • IsNullOrEmpty, que indica se uma cadeia de caracteres é null ou é igual a String.Empty. Esse método elimina a necessidade de usar código como o seguinte:

    if (str == null || str.Equals(String.Empty))
    
  • IsNullOrWhiteSpace, que indica se uma cadeia de caracteres é null, é igual a String.Empty, ou consistir exclusivamente em vez de caracteres de espaço em branco. Esse método elimina a necessidade de usar código como o seguinte:

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

O exemplo a seguir usa o IsNullOrEmpty método o IFormattable.ToString implementação de um personalizado Temperature classe. O método aceita as cadeias de caracteres de formato "G", "C", "F" e "K". Se uma cadeia de caracteres de formato vazio ou um formato de cadeia de caracteres cujo valor é null é passado para o método, seu valor é alterado para a cadeia de caracteres 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));
   }                                   
}

Um String objeto é chamado imutável (somente leitura), porque seu valor não pode ser modificado após ele ter sido criado. Métodos que aparecem para modificar um String objeto retorna um novo String objeto que contém a modificação.

Como cadeias de caracteres são imutáveis, rotinas de manipulação de cadeia de caracteres que executam repetido adições ou exclusões que parece ser que uma única cadeia de caracteres pode extrair uma penalidade de desempenho significativa. Por exemplo, o código a seguir usa um gerador de número aleatório para criar uma cadeia de caracteres com o intervalo de 0x0001 para 0x052F 1000 caracteres. Embora o código parece usar concatenação de cadeia de caracteres para acrescentar um caractere de nova a cadeia de caracteres existente denominada str, ele cria um novo String objeto para cada operação de concatenação.

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();
   }
}

Você pode usar o StringBuilder classe o String classe para operações que fazer várias alterações para o valor de uma cadeia de caracteres. Diferentemente das instâncias da String classe StringBuilder objetos são mutáveis; ao concatenar, acrescentar ou excluir subcadeias de caracteres de uma cadeia de caracteres, as operações são executadas em uma única cadeia de caracteres. Quando terminar de modificar o valor de um StringBuilder do objeto, você pode chamar seu StringBuilder.ToString método para convertê-lo em uma cadeia de caracteres. O exemplo a seguir substitui o String usado no exemplo anterior para concatenar 1000 caracteres aleatório no intervalo como 0x0001 para 0x052F com um 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();
   }
}

Membros de String classe executar operações (linguísticas) ordinal ou sensíveis à cultura um String objeto. Uma operação ordinal age no valor numérico de cada Char objeto. Uma operação de cultura age no valor da Stringobjeto e usa específicos de cultura maiusculas e minúsculas, classificação, formatação e regras de análise em conta. Operações sensíveis à cultura são executadas no contexto de uma cultura explicitamente declarada ou a cultura atual implícita. Os dois tipos de operações podem produzir resultados muito diferentes quando elas são executadas na mesma cadeia de caracteres.

O .NET Framework também oferece suporte a operações de cadeia de caracteres linguística cultura usando a cultura invariável (CultureInfo.InvariantCulture), que livremente com base nas configurações de cultura do idioma inglês independente da região. Ao contrário de outras System.Globalization.CultureInfo garantem de configurações, as configurações de cultura invariável para manter a consistência em um único computador, do sistema ao sistema e em versões do .NET Framework. A cultura invariável pode ser visto como um tipo de caixa preta que garante a estabilidade de comparações de cadeia de caracteres e ordenação em todas as culturas.

System_CAPS_security Segurança Observação

Se seu aplicativo toma uma decisão de segurança sobre um identificador simbólico como um nome de arquivo ou pipe nomeado ou sobre dados persistentes, como os dados com base em texto em um arquivo XML, a operação deve usar uma comparação ordinal em vez de uma comparação sensíveis à cultura. Isso ocorre porque uma comparação sensíveis à cultura pode produzir resultados diferentes dependendo da cultura em vigor, enquanto uma comparação ordinal depende somente os caracteres em comparação com o valor binário.

System_CAPS_importantImportante

A maioria dos métodos que executam operações de cadeia de caracteres inclui uma sobrecarga que tem um parâmetro de tipo StringComparison, que permite que você especifique se o método executa uma operação ordinal ou sensíveis à cultura. Em geral, você deve chamar essa sobrecarga para fazer com que a intenção do método de chamada clara. Para obter as práticas recomendadas e diretrizes para usar ordinais e sensíveis à cultura operações em cadeias de caracteres, consulte Práticas recomendadas para o uso de cadeias de caracteres no .NET Framework.

Operações para maiusculas e minúsculas, formatação e análise, de comparação e ordenação, e testes de igualdade pode ser um ordinal ou sensíveis à cultura. As seções a seguir abordam cada categoria de operação.

System_CAPS_tipDica

Você sempre deve chamar uma sobrecarga de método que faz com que a intenção do método de chamada clara. Por exemplo, em vez de chamar o Compare(String, String) método para executar uma comparação de cultura de duas cadeias de caracteres usando as convenções da cultura atual, você deve chamar o Compare(String, String, StringComparison) método com um valor de StringComparison.CurrentCulture para o comparisonType argumento. Para obter mais informações, consulte Práticas recomendadas para o uso de cadeias de caracteres no .NET Framework.

Regras de maiusculas e minúsculas determinam como alterar a capitalização de um caractere Unicode; Por exemplo, de minúsculas em maiusculas. Geralmente, uma operação de maiusculas e minúsculas é executada antes de uma comparação de cadeia de caracteres. Por exemplo, uma cadeia de caracteres pode ser convertida em maiusculas para que ele pode ser comparado com outra cadeia de caracteres em maiusculas. Você pode converter os caracteres em uma cadeia de caracteres em minúsculas chamando o ToLower ou ToLowerInvariant método e você pode convertê-los em letras maiusculas, chamando o ToUpper ou ToUpperInvariant método. Além disso, você pode usar o TextInfo.ToTitleCase método para converter uma cadeia de caracteres para maiusculas/minúsculas.

Operações de maiusculas e minúsculas podem ser baseadas nas regras de cultura atual, uma cultura específica ou a cultura invariável. Como mapeamentos de casos podem variar dependendo da cultura usada, o resultado de operações de maiusculas e minúsculas pode variar com base na cultura. As diferenças reais em maiusculas e minúsculas são de três tipos:

  • Diferenças no mapeamento de caso da LETRA maiuscula de LATINO I (U + 0049), LATINO pequena LETRA I (U + 0069), LATINO LETRA maiuscula a I mesmo com ponto superior (U + 0130) e LATIN pequena LETRA sem ponto I (U + 0131). No tr-TR (turco (Turquia)) e culturas az-Latn-AZ (Azerbaijão, latino) e na tr, az e culturas neutras az Latn, o minúsculas equivalente MAIUSCULO LATINO I é latina pequena LETRA sem ponto I e o equivalente maiusculo LATINO pequena LETRA I é MAIUSCULO LATINO I com ponto acima. Em outras culturas, incluindo a cultura invariável, LATINO pequena LETRA I e MAIUSCULO LATINO I são equivalentes em maiusculas e minúsculas.

    O exemplo a seguir demonstra como uma comparação de cadeia de caracteres projetada impedir o acesso de sistema de arquivos pode falhar se ele se baseia em uma comparação de cultura não diferencia maiusculas e minúsculas. (As convenções de maiusculas e minúsculas da cultura invariável devem ter sido usadas.)

    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
    
  • Diferenças de mapeamentos de casos entre a cultura invariável e todas as outras culturas. Nesses casos, usando as regras de maiusculas e minúsculas da cultura invariável para alterar um caractere para maiusculas ou minúsculas retorna o mesmo caractere. Para todas as culturas, ele retorna um caractere diferente. Alguns dos caracteres afetados são listados na tabela a seguir.

    CHARACTER

    Se alterado para

    Retorna

    ENTRADA DE MÍCRON (U + 00B5)

    Maiúsculas

    LETRA GREGA MAIUSCULA MU (U +-39C)

    LETRA LATINA MAIUSCULA I COM PONTO ACIMA (U + 0130)

    Minúsculas

    LETRA MINÚSCULA LATINA I (U + 0069)

    LETRA MINÚSCULA LATINA SEM PONTO I (U + 0131)

    Maiúsculas

    LETRA MAIUSCULA LATINA I (U + 0049)

    LETRA LATINA MINÚSCULA S LONGO (U + 017F)

    Maiúsculas

    LETRA MAIUSCULA LATINA S (U + 0053)

    LETRA DE MAIUSCULA LATINA D COM LETRA MINÚSCULA Z COM ACENTO CIRCUNFLEXO INVERTIDO (U + 01C 5)

    Minúsculas

    LETRA LATINA MINÚSCULA DZ COM ACENTO CIRCUNFLEXO INVERTIDO (U + 01C 6)

    COMBINANDO CARACTERE GREGO IOTA SUBSCRITO (U + 0345)

    Maiúsculas

    LETRA MAIUSCULA GREGA IOTA (U + 0399)

  • Diferenças nos mapeamentos de casos de duas letras maiusculas pares no intervalo de caracteres ASCII. Na maioria das culturas, um par de duas letras maiusculas é igual ao par equivalente duas letras maiusculo ou minúsculo. Isso não é verdade para os seguintes pares de duas letras em culturas a seguir, porque em cada caso, eles são comparados com um dígrafo:

    • "lJ" e "nJ" a cultura hr-HR (Croata (Croácia)).

    • "cH" no cs-CZ (Tcheco (República Tcheca)) e culturas sk-SK (Eslovaco (Eslováquia)).

    • "aA" na cultura da-DK (dinamarquês (Dinamarca)).

    • "cS", "dZ", "dZS", "Nova Iorque", "sZ", "tY" e "zS" cultura hu-HU (húngaro (Hungria)).

    • "cH" e "tudo" na cultura es-ES_tradnl (Espanhol (Espanha, classificação tradicional)).

    • "cH", "gI", "kH", "nG" "nH", "pH", "ou", "tH" e "tR" cultura vi-VN (vietnamita (Vietnã)).

    No entanto, é incomum encontrar uma situação em que uma comparação sensíveis à cultura desses pares cria problemas, porque esses pares são incomuns em cadeias de caracteres fixas ou identificadores.

O exemplo a seguir ilustra algumas das diferenças nas regras de maiusculas e minúsculas entre culturas ao converter cadeias de caracteres em maiusculas.

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 

Formatação e análise são operações inversas. Regras de formatação determinam como converter um valor, como uma data e hora ou um número, em sua representação de cadeia de caracteres, enquanto as regras de análise determinam como converter uma representação de cadeia de caracteres em um valor como uma data e hora. Tanto a formatação e regras de análise são dependentes convenções culturais. O exemplo a seguir ilustra a ambiguidade que pode surgir ao interpretar uma cadeia de caracteres de data específicos de cultura. Sem saber as convenções de cultura que foi usado para gerar uma cadeia de caracteres de data, não é possível saber se 01/03/2011, 1/3/2011 e 01/03/2011 representam 3 de janeiro de 2011 ou 1 de março 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

Da mesma forma, como mostra o exemplo a seguir, uma única cadeia de caracteres pode produzir datas diferentes dependendo da cultura cujas convenções são usadas na operação de análise.

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

Convenções para comparação e classificação de cadeias de caracteres variam de culturas. Por exemplo, a ordem de classificação pode se basear fonética ou a representação visual dos caracteres. Idiomas do Leste Asiático, caracteres são classificados por um traço e radical de ideogramas. Também classificação depende das linguagens de ordem e culturas usam para o alfabeto. Por exemplo, o idioma dinamarquês tem um caractere "Æ" que classifica depois de "Z" no alfabeto. Além disso, as comparações podem ser diferencia maiusculas de minúsculas ou maiusculas de minúsculas e, em alguns casos regras de maiusculas e minúsculas também diferem pela cultura. Comparação ordinal, por outro lado, usa os pontos de código Unicode dos caracteres individuais em uma cadeia de caracteres quando a comparação e classificação de cadeias de caracteres.

Regras de classificação determinam que a ordem alfabética de caracteres Unicode e como duas cadeias de caracteres são comparados. Por exemplo, o String.Compare(String, String, StringComparison) método compara duas cadeias de caracteres com base no StringComparison parâmetro. Se o valor do parâmetro é StringComparison.CurrentCulture, o método executa uma comparação linguística que usa as convenções da cultura atual; se o valor do parâmetro for StringComparison.Ordinal, o método executa uma comparação ordinal. Consequentemente, como mostra o seguinte exemplo, se a cultura atual é dos EUA Inglês, a primeira chamada para o String.Compare(String, String, StringComparison) método (usando a comparação sensíveis à cultura) considera "a" menor que "A", mas a segunda chamada para o mesmo método (usando a comparação ordinal) considera "a" maior 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

O .NET Framework dá suporte a regras de classificação ordinal, cadeia de caracteres e palavras:

  • Uma classificação do word executa uma comparação de sensíveis à cultura de cadeias de caracteres na qual determinados caracteres Unicode não alfanuméricos podem ter especiais pesos atribuídos a eles. Por exemplo, o hífen (-) pode ter um peso muito pequeno atribuído a ele para que "cooperação" e "cooperação" aparecem ao lado do outro em uma lista classificada. Para obter uma lista da Stringmétodos que comparam duas cadeias de caracteres usando regras de classificação do word, consulte o operações de cadeia de caracteres por categoria seção.

  • Um tipo de cadeia de caracteres também executa uma comparação sensíveis à cultura. É semelhante a uma classificação de palavra, exceto que não há nenhum casos especiais e todos os símbolos não alfanuméricos vir antes de todos os caracteres alfanuméricos de Unicode. Duas cadeias de caracteres podem ser comparadas usando regras de classificação de cadeia de caracteres chamando o CompareInfo.Compare sobrecargas do método que tem um options parâmetro que é fornecido um valor de CompareOptions.StringSort. Observe que esse é o único método que o .NET Framework fornece para comparar duas cadeias de caracteres usando regras de classificação de cadeia de caracteres.

  • Uma classificação ordinal compara cadeias de caracteres com base no valor numérico de cada Char objeto na cadeia de caracteres. Uma comparação ordinal diferencia automaticamente porque as versões maiusculas e minúsculas de um caractere têm pontos de código diferentes. No entanto, se o caso não seja importante, você pode especificar uma comparação ordinal que diferencia maiusculas de minúsculas. Isso é equivalente à conversão de cadeia de caracteres em maiusculas usando a cultura invariável e, em seguida, executar uma comparação ordinal no resultado. Para obter uma lista da String métodos que comparam duas cadeias de caracteres usando regras de classificação ordinal, consulte o operações de cadeia de caracteres por categoria seção.

Uma comparação sensíveis à cultura é qualquer comparação que usa explicitamente ou implicitamente um CultureInfo objeto, incluindo a cultura invariável é especificada pelo CultureInfo.InvariantCulture propriedade. A cultura implícita é a cultura atual, que é especificada pelo Thread.CurrentCulture e CultureInfo.CurrentCulture propriedades. Há uma variação considerável na ordem de classificação de caracteres alfabéticos (isto é, caracteres para o qual o Char.IsLetter propriedade retorna true) entre culturas. Você pode especificar uma comparação de cultura que usa as convenções de uma cultura específica, fornecendo um CultureInfo o objeto para um método de comparação de cadeia de caracteres, como Compare(String, String, CultureInfo, CompareOptions). Você pode especificar uma comparação de cultura que usa as convenções da cultura atual, fornecendo StringComparison.CurrentCulture, StringComparison.CurrentCultureIgnoreCase, ou qualquer membro do CompareOptions enumeração diferente CompareOptions.Ordinal ou CompareOptions.OrdinalIgnoreCase para uma sobrecarga apropriada do Compare método. Uma comparação sensíveis à cultura é geralmente adequada para classificação enquanto uma comparação ordinal não é. Uma comparação ordinal geralmente é apropriada para determinar se duas cadeias de caracteres são iguais (ou seja, para determinar a identidade) enquanto uma comparação sensíveis à cultura não é.

O exemplo a seguir ilustra a diferença entre a comparação de cultura e ordinal. O exemplo será avaliado três cadeias de caracteres, "Apple", "Æble" e "AEble", usando as convenções de culturas da-DK e en-US e de comparação ordinal (cada um deles é a cultura padrão no momento em que o Compare método é chamado). Como o idioma dinamarquês trata o caractere "Æ" como uma letra individual e classifica os dados depois de "Z" no alfabeto, a cadeia de caracteres "Æble" é maior que "Apple". No entanto, "Æble" não é equivalente a "AEble", "Æble" também é maior que "AEble". A cultura en-US não inclui a letra "Æ", mas a trata como equivalente a "AE", que explica por que "Æble" é menor que "Apple" mas igual a "AEble". Comparação ordinal, por outro lado, considera "Apple" para ser menor do que "Æble" e "Æble" para ser maior 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

Use as seguintes diretrizes gerais para escolher um método de comparação de classificação ou de cadeia de caracteres apropriado:

  • Se desejar que as cadeias de caracteres a ser ordenadas com base na cultura do usuário, você deve pedir acordo com as convenções da cultura atual. Se a cultura do usuário for alterado, a ordem de classificação cadeias de caracteres também alterará adequadamente. Por exemplo, um aplicativo de dicionário de sinônimos deve sempre ser classificada palavras com base na cultura do usuário.

  • Se você quiser as cadeias de caracteres a ser ordenadas com base na convenção de uma cultura específica, ordene-as, fornecendo um CultureInfo objeto que representa essa cultura para um método de comparação. Por exemplo, em um aplicativo projetado para ensinar aos alunos um idioma específico, você deseja cadeias de caracteres a ser ordenadas com base na convenção de uma das culturas que faz esse idioma.

  • Se você quiser que a ordem das cadeias de caracteres permanecem inalterados entre culturas, deve ordene-as com base nas convenções da cultura invariável ou usar uma comparação ordinal. Por exemplo, você usaria uma classificação ordinal para organizar os nomes de arquivos, processos, mutexes ou pipes nomeados.

  • Para obter uma comparação que envolve uma decisão de segurança (como se um nome de usuário é válido), você deve sempre executar um ordinal testar a igualdade chamando uma sobrecarga de Equals método.

System_CAPS_noteObservação

A classificação de cultura e as regras usadas na comparação de cadeia de caracteres de maiusculas e minúsculas dependem da versão do .NET Framework. No .NET Framework 4.5 em execução no Windows 8 sistema operacional, classificação, de maiusculas e minúsculas, normalização e informações de caractere Unicode em conformidade com o padrão Unicode 6.0. Em outros sistemas operacionais, ele segue o padrão Unicode 5.0.

Para obter mais informações sobre regras de classificação ordinal, cadeia de caracteres e palavras, consulte o System.Globalization.CompareOptions tópico. Para obter recomendações adicionais sobre quando usar cada regra, consulte Práticas recomendadas para o uso de cadeias de caracteres no .NET Framework.

Em geral, você não chama cadeia de caracteres de métodos de comparação como Compare diretamente para determinar a ordem de classificação de cadeias de caracteres. Em vez disso, os métodos de comparação são chamados por métodos de classificação como Array.Sort ou List<T>.Sort. O exemplo a seguir executa as quatro operações de classificação diferentes (classificação do word usando a cultura atual, classificação do word usando a cultura invariável, classificação ordinal e classificação de cadeia de caracteres usando a cultura invariável) sem chamar explicitamente um método de comparação de cadeia de caracteres, embora elas especificam o tipo de comparação a ser usado. Observe que cada tipo de classificação produz uma ordenação exclusivo de cadeias de caracteres em sua 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_tipDica

Internamente, o.NET Framework usa chaves de classificação para dar suporte a comparação de cadeia de caracteres culturallysensitive. Cada caractere em uma cadeia de caracteres tem várias categorias de pesos de classificação, incluindo caracteres alfabéticos, caso e sinais diacríticos. Uma chave de classificação, representado pelo SortKey classe, fornece um repositório desses pesos para uma determinada cadeia de caracteres. Se seu aplicativo executa um grande número de pesquisa ou classificação de operações no mesmo conjunto de cadeias de caracteres, você pode melhorar o desempenho gerando e armazenando chaves de classificação para todas as cadeias de caracteres que ele usa. Quando uma operação de classificação ou comparação é necessária, você usar as chaves de classificação em vez de cadeias de caracteres. Para obter mais informações, consulte a classe SortKey.

Se você não especificar uma convenção de comparação de cadeia de caracteres, classifica os métodos como Array.Sort(Array) executar uma classificação sensíveis à cultura, diferencia maiusculas de minúsculas em cadeias de caracteres. O exemplo a seguir ilustra como alterar a cultura atual afeta a ordem de classificação cadeias de caracteres em uma matriz. Ele cria uma matriz de cadeias de caracteres de três. Primeiro, ele define o System.Threading.Thread.CurrentThread.CurrentCulture propriedade para en-US e chama o Array.Sort(Array) método. A ordem de classificação resultante é baseada em convenções de classificação para a cultura do inglês (Estados Unidos). Em seguida, o exemplo define o System.Threading.Thread.CurrentThread.CurrentCulture propriedade da-DK e chama o Array.Sort método novamente. Observe como a ordem de classificação resultante difere dos resultados en-US porque ele usa as convenções de classificação para dinamarquê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_warningAviso

Se o seu principal objetivo na comparação de cadeias de caracteres é determinar se eles forem iguais, você deve chamar o String.Equals método. Normalmente, você deve usar Equals para executar uma comparação ordinal. O String.Compare método destina-se principalmente a classificação de cadeias de caracteres.

Métodos de pesquisa de cadeia de caracteres como String.StartsWith e String.IndexOf, também pode executar comparações de cadeia de caracteres sensíveis à cultura ou ordinal. O exemplo a seguir ilustra as diferenças entre as comparações ordinais e sensíveis à cultura usando a IndexOf método. Uma pesquisa sensíveis à cultura em que a cultura atual é inglês (Estados Unidos) considera a subcadeia de caracteres "oe" para corresponder a Ligadura "œ". Como um hífen flexível (U + 00AD) é um caractere de largura zero, a pesquisa trata o hífen flexível como equivalente a Empty e localiza uma correspondência no início da cadeia de caracteres. Uma pesquisa ordinal, por outro lado, não encontrar uma correspondência em ambos os casos.

using System;

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

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

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

Métodos de pesquisa de cadeia de caracteres como String.StartsWith e String.IndexOf, também pode executar sensíveis à cultura ou comparações de cadeias de caracteres ordinais para determinar se um caractere ou uma subcadeia de caracteres é encontrado em uma cadeia de caracteres especificada.

Os métodos de pesquisa no String classe procurar por um caractere individual, como oIndexOf método ou parte de um conjunto de caracteres, como o IndexOfAny método, realizam uma pesquisa ordinal. Para executar uma pesquisa sensíveis à cultura de um caractere, você deve chamar uma CompareInfo método como CompareInfo.IndexOf(String, Char) ou CompareInfo.LastIndexOf(String, Char). Observe que os resultados da pesquisa por um caractere usando a comparação ordinal e sensíveis à cultura podem ser muito diferentes. Por exemplo, uma pesquisa de um caractere Unicode pré-compostos como a Ligadura "Æ" (U + 00 C 6) pode corresponder a qualquer ocorrência de seus componentes na sequência correta, como "AE" (U + 041U + 0045), dependendo da cultura. O exemplo a seguir ilustra a diferença entre o String.IndexOf(Char) e CompareInfo.IndexOf(String, Char) métodos ao procurar por um caractere individual. A Ligadura "æ" (U + 00E6) foi encontrada na cadeia de caracteres "aérea" ao usar as convenções de cultura en-US, mas não ao usar as convenções da cultura da-DK ou ao executar uma comparação 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 outro lado, String métodos que pesquisar uma cadeia de caracteres em vez de um caractere de realiza uma pesquisa de cultura se as opções de pesquisa não forem especificadas explicitamente por um parâmetro de tipo de classe StringComparison. A única exceção é Contains, que executa uma pesquisa ordinal.

Use o String.Compare método para determinar a relação entre duas cadeias de caracteres na ordem de classificação. Normalmente, essa é uma operação de sensíveis à cultura. Por outro lado, chamar o String.Equals método de teste de igualdade. Como o teste de igualdade geralmente compara a entrada do usuário com alguma cadeia de caracteres conhecida, como um nome de usuário válido, uma senha ou um caminho de sistema de arquivos, normalmente é uma operação ordinal.

System_CAPS_warningAviso

É possível testar a igualdade chamando o String.Compare método e determinar se o valor de retorno é zero. No entanto, essa prática não é recomendada. Para determinar se duas cadeias de caracteres são iguais, você deve chamar uma das sobrecargas do String.Equals método. A sobrecarga preferencial para chamar é qualquer instância Equals(String, StringComparison) estático ou método Equals(String, String, StringComparison) método, porque ambos os métodos incluem um System.StringComparison parâmetro que especifica explicitamente o tipo de comparação.

O exemplo a seguir ilustra o perigo de executar uma comparação de cultura para igualdade quando um ordinal um deve ser usado em vez disso. Nesse caso, a intenção do código é impedir o acesso de sistema de arquivos de URLs que começam com "FILE://" ou "file://" ao executar uma comparação de maiusculas e minúsculas do início de uma URL com a cadeia de caracteres "FILE://". No entanto, se uma comparação sensíveis à cultura é executada usando a cultura de turco (Turquia) em uma URL que começa com "file://", a comparação de igualdade falhará, porque o turco equivalente maiusculas em minúsculas "i" é "İ" em vez de "I". Como resultado, o acesso de sistema de arquivos inadvertidamente é permitido. Por outro lado, se uma comparação ordinal é executada, a comparação de igualdade for bem-sucedida, e acesso de sistema de arquivos será negado.

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.

Alguns caracteres Unicode têm várias representações. Por exemplo, qualquer um dos pontos de código a seguir pode representar a letra "ắ":

  • U + 1EAF

  • U + 0103 U + 0301

  • U + 0061 U + 0306 U + 0301

Várias representações para um único caractere complicam a pesquisa, classificação, correspondência e outras operações de cadeia de caracteres.

O padrão Unicode define um processo chamado de normalização que retorna uma representação binária de um caractere Unicode para qualquer uma das suas representações binárias equivalentes. Normalização pode usar vários algoritmos, chamados de formulários de normalização, que segue regras diferentes. O .NET Framework dá suporte a formulários de normalização Unicode C, D, KC e KD. Cadeias de caracteres foram normalizadas para o mesmo formulário de normalização, eles podem ser comparados usando comparação ordinal.

Uma comparação ordinal é uma comparação binária do valor escalar Unicode correspondente Char objetos em cada cadeia de caracteres. OString classe inclui um número de métodos que podem executar uma comparação ordinal, incluindo o seguinte:

Você pode determinar se uma cadeia de caracteres é normalizada para o formulário de normalização C chamando o String.IsNormalized() método, ou você pode chamar o String.IsNormalized(NormalizationForm) método para determinar se uma cadeia de caracteres é normalizada para um formulário de normalização especificado. Você também pode chamar o String.Normalize() método para converter uma cadeia de caracteres para o formulário de normalização C, ou você pode chamar o String.Normalize(NormalizationForm) método para converter uma cadeia de caracteres a um formulário de normalização especificado. Para obter informações passo a passo sobre a normalização e comparação de cadeias de caracteres, consulte o Normalize() e Normalize(NormalizationForm) métodos.

O exemplo simples a seguir ilustra a normalização de cadeia de caracteres. Ele define a letra "ố" três modos diferentes em três diferentes cadeias de caracteres e usa uma comparação ordinal para fins de igualdade para determinar o que cada cadeia de caracteres é diferente de outras cadeias de caracteres de dois. Ele converte cada cadeia de caracteres em formulários de normalização com suporte e executa novamente uma comparação ordinal de cada cadeia de caracteres em um formulário de normalização especificado. Em cada caso, o segundo teste de igualdade mostra que as cadeias de caracteres são iguais.

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 obter mais informações sobre a normalização e formulários de normalização, consulte System.Text.NormalizationForm, bem como Unicode Standard Annex #15: Unicode Normalization Forms e Normalization FAQ no site do site unicode.org.

O String classe fornece membros para comparar cadeias de caracteres, cadeias de caracteres para igualdade de teste, localizando caracteres ou subcadeias em uma cadeia de caracteres, modificando uma cadeia de caracteres, extrair subcadeias de caracteres de uma cadeia de caracteres, combinando cadeias de caracteres, formatação de valores, a cópia de uma cadeia de caracteres e normalizando uma cadeia de caracteres.

Você pode comparar cadeias de caracteres para determinar sua posição relativa na ordem de classificação usando o seguinte Stringmétodos:

  • CompareRetorna um inteiro que indica a relação de uma cadeia de caracteres para uma segunda cadeia de caracteres na ordem de classificação.

  • CompareOrdinalRetorna um inteiro que indica a relação de uma cadeia de caracteres para uma segunda cadeia de caracteres com base em uma comparação dos seus pontos de código.

  • CompareToRetorna um inteiro que indica a relação da instância atual de cadeia de caracteres para uma segunda cadeia de caracteres na ordem de classificação. O CompareTo(String) método fornece o IComparable e IComparable<T> implementações para o String classe.

Chamar o Equals método para determinar se duas cadeias de caracteres são iguais. A instância Equals(String, String, StringComparison) e estático Equals(String, StringComparison) sobrecargas permitem que você especifique se a comparação for ordinal ou sensíveis à cultura, e se o caso é considerado ou ignorado. A maioria dos testes de igualdade são ordinal e comparações de igualdade que determinam o acesso a um recurso do sistema (como um objeto do sistema de arquivos) devem ser sempre ordinal.

O String classe inclui dois tipos de métodos de pesquisa:

  • Métodos que retornam um Boolean valor para indicar se uma determinada subcadeia de caracteres está presente em uma instância de cadeia de caracteres. Isso inclui o Contains, EndsWith, e StartsWith métodos.

  • Métodos que indicam a posição inicial de uma subcadeia de caracteres em uma instância de cadeia de caracteres. Isso inclui o IndexOf, IndexOfAny, LastIndexOf, e LastIndexOfAny métodos.

System_CAPS_warningAviso

Se você deseja pesquisar uma cadeia de caracteres para um determinado padrão em vez de uma subcadeia de caracteres específica, você deve usar expressões regulares. Para obter mais informações, consulte Expressões regulares do .NET Framework.

O String classe inclui os seguintes métodos que aparecem para modificar o valor de uma cadeia de caracteres:

  • InsertInsere uma cadeia de caracteres atual String instância.

  • PadLeftInsere uma ou mais ocorrências de um caractere especificado no início de uma cadeia de caracteres.

  • PadRightInsere uma ou mais ocorrências de um caractere especificado no início de uma cadeia de caracteres.

  • RemoveExclui uma subcadeia de caracteres atual String instância.

  • Replacesubstitui uma subcadeia de caracteres por outra subcadeia de caracteres atual String instância.

  • ToLowere ToLowerInvariant converte todos os caracteres em uma cadeia de caracteres em letras minúsculas.

  • ToUppere ToUpperInvariant converter todos os caracteres em uma cadeia de caracteres em maiusculas.

  • TrimRemove todas as ocorrências de um caractere de início e no final de uma cadeia de caracteres.

  • TrimEndRemove todas as ocorrências de um caractere de final de uma cadeia de caracteres.

  • TrimStartRemove todas as ocorrências de um caractere de início de uma cadeia de caracteres.

System_CAPS_importantImportante

Todos os métodos de modificação de cadeia de caracteres retornam um novo String objeto. Eles não modificam o valor da instância atual.

O String.Split método separa uma única cadeia de caracteres em várias cadeias de caracteres. Sobrecargas do método permitem que você especifique vários delimitadores, para determinar o número máximo de subcadeias de caracteres que o método extrai e para determinar se as cadeias de caracteres vazias (que ocorrem quando os delimitadores são adjacentes) são incluídas entre as cadeias de caracteres retornadas.

O seguinte String métodos podem ser usados para concatenação de cadeia de caracteres:

  • Concatcombina um ou mais subcadeias de caracteres em uma única cadeia de caracteres.

  • JoinConcatena uma ou mais subcadeias de caracteres em um único elemento e adiciona um separador entre cada subcadeia de caracteres.

O String.Format método usa o recurso de formatação composta para substituir os espaços reservados de um ou mais de uma cadeia de caracteres com a representação de cadeia de caracteres de algum objeto ou valor. O Format método é geralmente usado para fazer o seguinte:

  • Para inserir a representação de cadeia de caracteres de um valor numérico em uma cadeia de caracteres.

  • Para inserir a representação de cadeia de caracteres de um valor de data e hora em uma cadeia de caracteres.

  • Para inserir a representação de cadeia de caracteres de um valor de enumeração em uma cadeia de caracteres.

  • Para inserir a representação de cadeia de caracteres de um objeto que oferece suporte a IFormattable interface em uma cadeia de caracteres.

  • Justificar à direita ou justificar à esquerda de uma subcadeia de caracteres em um campo dentro de uma cadeia de caracteres maior.

Para obter informações detalhadas sobre a formatação de operações e exemplos, consulte o Format resumo de sobrecarga.

Você pode chamar o seguinte String métodos para fazer uma cópia de uma cadeia de caracteres:

  • CloneRetorna uma referência a um existente String objeto.

  • Copycria uma cópia de uma cadeia de caracteres existente.

  • CopyTocopia uma parte de uma cadeia de caracteres em uma matriz de caracteres.

Em Unicode, um único caractere pode ter vários pontos de código. Normalização converte esses caracteres equivalentes na representação binária do mesmo. O String.Normalize método executa a normalização e o String.IsNormalized método determina se uma cadeia de caracteres é normalizada.

Para obter mais informações e um exemplo, consulte o Normalização seção neste tópico.

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1

Esse tipo é de Thread de segurança.

Retornar ao início
Mostrar:
© 2017 Microsoft