Lo más importante que hay que recordar sobre las cadenas de caracteres de C# es que son objetos inmutables que representan texto como una secuencia de caracteres Unicode (letras, dígitos, signos de puntuación, etc.). Las comillas dobles se usan para definir una instancia de string:
string fruit = "Apple";
Se puede manipular un string llamando a uno de sus métodos o propiedades. Como los valores de tipo string nunca pueden cambiar después de haberse definido, todos los métodos de manipulación de strings devolverán un string nuevo.
Un string está delimitado por comillas dobles ("). Algunos caracteres especiales necesitan escaparse usando el carácter barra invertida (\). Los strings también pueden ir precedidos del símbolo arroba (@), lo que los convierte en cadenas textuales que ignorarán cualquier carácter de escape.
string escaped = "c:\\test.txt";
string verbatim = @"c:\test.txt";
escaped == verbatim;
// => true
Si solo necesitas una parte de un string, puedes usar el método Substring() para extraer justo esa parte:
string sentence = "Frank chases the bus.";
string name = sentence.Substring(0, 5);
// => "Frank"
El método IndexOf() se puede usar para encontrar el índice de la primera aparición de un string dentro de otro string, y devuelve -1 si no se ha podido encontrar el valor especificado:
"continuous-integration".IndexOf("integration")
// => 11
"continuous-integration".IndexOf("deployment")
// => -1
Por último, hay muchas formas de concatenar un string. La más sencilla es usar el operador +.
string name = "Jane";
"Hello " + name + "!";
// => "Hello Jane!"
Para cualquier formato de string más complejo que una simple concatenación, se prefiere la interpolación de strings. Para habilitar la interpolación en un string, añade el símbolo dólar ($) al principio.
string name = "Jane";
$"Hello {name}!";
// => "Hello Jane!"