It looks like you just need to keep an index of where you have it, and then some display function:
int index = 0; foreach (...) { ... string key = MapIndexToKey(index); dictionary[key] = value; index++; } ...
EDIT: I updated the MapIndexToKey method to simplify it. It is not clear why a string key is needed if you use only one character, though ...
Another edit: I believe you could just use:
string key = ((char) (index + 'A')).ToString();
instead of having a matching function at all, considering your requirements, since the characters are adjacent in the Unicode order of "A" ...
source share