Referenciando índices de linha
Cada caractere em uma string tem um número (chamado 
índice) e a indexação na linguagem de programação C# começa do zero. Ou seja, o primeiro caractere tem índice 0, o segundo - 1 e assim por diante.
Os caracteres de string podem ser acessados por índices, que são indicados entre colchetes 
s[i].
 
Exemplo 
| String S | 
H | 
e | 
l | 
l | 
o | 
| Índice | 
S[0] | 
S[1] | 
S[2] | 
S[3] | 
S[4] | 
Importante!
Ao acessar um elemento string no índice 
i, o tipo 
s[i] não é 
string mas sim 
char. Isso significa que não é uma string, mas um caractere que corresponde a algum número inteiro na tabela de códigos de caracteres. Em particular, quando você adiciona dois elementos do tipo 
char , obtém um número inteiro - a adição dos códigos desses elementos. No entanto, se você exibir 
s[i], o caractere 
i-ésimo da string será exibido, não o número correspondente a ele.