I found some question asking how to let char \'B\' to return \'C\' and then \'D\' etc. The answers were quite complex and mostly just overkill.
Why not to use simply
If you just want to increment :
Char x = 'A';
Char y = (Char)(Convert.ToUInt16(x) + 1);
But, if you want an excel like column :
// (1 = A, 2 = B...27 = AA...703 = AAA...)
public static string GetColNameFromIndex(int columnNumber)
{
int dividend = columnNumber;
string columnName = String.Empty;
int modulo;
while (dividend > 0)
{
modulo = (dividend - 1) % 26;
columnName = Convert.ToChar(65 + modulo).ToString() + columnName;
dividend = (int)((dividend - modulo) / 26);
}
return columnName;
}
// (A = 1, B = 2...AA = 27...AAA = 703...)
public static int GetColNumberFromName(string columnName)
{
char[] characters = columnName.ToUpperInvariant().ToCharArray();
int sum = 0;
for (int i = 0; i < characters.Length; i++)
{
sum *= 26;
sum += (characters[i] - 'A' + 1);
}
return sum;
}