protected Dictionary <char, Tuple <string, char> > MakeMap() { var result = new Dictionary <char, Tuple <string, char> >(); var key = KeyList.GetEnumerator(); key.MoveNext(); var maxcapacity = Locale.KeyCapacity(key.Current); var capacity = 0; foreach (var letter in Locale.Alphabet) { var sequence = "".PadRight(capacity + 1, key.Current); result[letter] = new Tuple <string, char>(sequence, key.Current); capacity++; if (capacity == maxcapacity) { capacity = 0; key.MoveNext(); maxcapacity = Locale.KeyCapacity(key.Current); } } result[' '] = new Tuple <string, char>("0", '0'); return(result); }