Lista de caracteres de la A a la Z de Enumerable.Range

Quiero hacer una lista de Enumerable.Range. ¿Este código es correcto?

SurnameStartLetterList = new List(); Enumerable.Range(65, 26).ToList().ForEach(character => SurnameStartLetterList.Add((char)character)); 

¿O hay una mejor manera de hacer este tipo de lista?

Bueno, la string es IEnumerable , por lo que esto también funcionaría:

 "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToList() 

Tienes que sopesar los pros y los contras de esto.

Pros:

  • Más fácil de leer el código anterior que su bucle (subjetivo, esta fue mi opinión)
  • Código más corto (pero probablemente no lo suficiente para dar cuenta de mucho)

Contras:

  • Más difícil de leer si no sabes qué .ToList() con una cadena
  • Puede introducir errores, por ejemplo, podría detectar fácilmente el error aquí:

     "ABCDEFGHIJKLMN0PQRSTUVWXYZ".ToList() 

    Con facilidad quiero decir que usted detectaría el error cuando esté leyendo el código, no si supiera que había un problema aquí y fuera a buscarlo.

Tal vez asi

 var surnameList = Enumerable.Range('A', 'Z' - 'A' + 1). Select(c => (char)c).ToList(); 

Tomé la respuesta de Can e hice una función de extensión:

 public static IEnumerable Range(char start, char end) { return Enumerable.Range((int)start, (int)end - (int)start + 1).Select(i => (char)i); } 

Uso:

 Console.WriteLine(Range('a', 'f').Contains("Vive La France!"[6]));