¿Cuál es la manera de conseguir rango "A" ... "Z" comoC# Enumerable Rango
Enumerable.Range(1,100)
Enumerable.Range("A","Z");
¿Cuál es la manera de conseguir rango "A" ... "Z" comoC# Enumerable Rango
Enumerable.Range(1,100)
Enumerable.Range("A","Z");
Enumerable.Range('A', 26).Select(x => ((char)x).ToString())
¿Por qué la llamada a 'ToString' es de su interés? No esperaría que hiciera nada útil ... –
Porque de lo contrario, cuando empiece a enumerar obtendrá enteros/caracteres (65, 66, ...) en lugar de cadenas ("A", "B", ...) que sería más práctico. –
Otra posibilidad es llamar a 'ToString()' durante la enumeración, pero pensé que devolver 'IEnumerable
EDIT: Se ha actualizado para incluir la corrección de Darin ...
En .NET 3.5 SP1, esto habría trabajado:
Enumerable.Range('A', 26).Cast<char>()
Sin embargo, el comportamiento de Cast
changed for .NET 3.5 SP1, por lo que ahora sólo realiza las conversiones de referencia en las conversiones unboxing. Entonces, para .NET 3.5SP1 y superior, necesita:
Enumerable.Range('A', 26).Select(x => (char) x);
No es terriblemente agradable, lo admito.
Con MiscUtil podría utilizar
'A'.To('Z').StepChar(1)
Tanto si así o no es una cuestión de gusto personal :)
@Jon, 'Enumerable.Range ('A', 26) .Cast
Gracias Jon. Solo estoy estudiando el Capítulo 11 (Expresión de consulta y Linq para objetos) de su libro. – user196546
Tengo una duda más ¿cuál es la diferencia entre Of of Type <> y Cast <>? – user196546
Por qué no sólo que sea sencillo ...
public static IEnumerable<char> GetAlphabet()
{
return "ABCDEFGHIJKLMNOPQRSTUVWXYZ".AsEnumerable();
}
Gracias James, parece muy agradable. – user196546
Proporciona un código más pequeño que los otros ejemplos. BESO :) – Carra
Otro método, si desea dividir de un elemento del alfabeto a otro ...
Enumerable.Range(0,26).Select(x => (char)((char)x + 'A'))
Creo que deberías usar 'A', 'Z'. caracteres en lugar de cadenas – RvdK