C# Strings Básico
Strings e interpolação
Em C#, strings são objetos imutáveis do tipo string. Isso significa que qualquer operação que pareça modificar uma string na verdade cria uma nova. Entender isso é essencial para evitar código ineficiente.
A interpolação com $ permite inserir expressões diretamente dentro da string usando { }, deixando o código mais legível que concatenações com +. Também existem métodos úteis como ToUpper(), Substring(), Replace(), Split(), etc.
Quando precisamos montar strings grandes ou em loops, concatenar com + ou interpolação repetida pode ser custoso, pois cada operação aloca uma nova string. Para esses casos, usamos StringBuilder, que é mutável e eficiente.
Além disso, C# 11 introduziu raw string literals ("""), que facilitam escrever strings com muitas aspas, barras invertidas e quebras de linha sem precisar escapar cada caractere.
Pontos-chave
- Strings são imutáveis: métodos como
ToUpper()retornam uma nova string, não alteram a original. - Interpolação com
$insere expressões diretamente na string usando{expressao}. StringBuilderé ideal para concatenar muitas strings em sequência, pois evita alocações repetidas.- Raw string literals (
""") permitem strings multilinha sem escapes e com aspas livres. - Use
string.Formatou interpolação para formatação simples; reserveStringBuilderpara loops ou grandes volumes.
using System;
using System.Text;
class Program
{
static void Main()
{
// Interpolação com $
string nome = "Maria";
int idade = 30;
Console.WriteLine($"Olá, {nome}! Você tem {idade} anos.");
// Métodos de string
string frase = " C# é divertido! ";
Console.WriteLine(frase.Trim().ToUpper()); // "C# É DIVERTIDO!"
Console.WriteLine(frase.Contains("divertido")); // True
// StringBuilder para muitas concatenações
var sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
sb.Append(i).Append(" ");
}
Console.WriteLine($"Números: {sb.ToString().Trim()}");
// Raw string literal (C# 11+)
string json = """
{
"nome": "Maria",
"idade": 30
}
""";
Console.WriteLine(json);
}
}