Anyone who has worked with strings in C# is probably familiar with the Substring function. For example, if we want to get the first three characters of a string we could do this:

string s = text.Substring(0,3);

or to get characters 3 and 4:

string s = text.Substring(2,2);

Only slightly less known is that if you want to get the end of a string you can omit the length and just use the starting character. So to get everything from the 3rd character to the end of the string you can do this:

string s = text.Substring(2);

We can also use Substring to get a single character but there are actually some lesser known ways of doing this.
The first way is to use the fact that a string in C# can be treated as a character array. To get the third character you could do this:

char c = text[2];

This method could also be used to iterate through all the characters in a string:

for(int i=0; i<text.Length; i++) {
char c = text[i];
// Do something with c
}

but there is an even simpler way to handle this:

foreach(char c in text)
{
// Do something with c
}

This last method is a much cleaner way to iterate through all the characters in a string.