I think you meant: string _chars = "0123456789abcdefghijklmnopqrstuvwxyz"; (lowercase) :) 65 = A, 97 = a Your version is definitely more readable (and efficient). Based on the default List length, it might reallocate (and copy) the memory backing the list a few times.